OC-链式编程
2019-03-28 本文已影响0人
SK丿希望
- 原理:
用block作为返回值实现的链式
- 优点
通过点语法直接调用
- 缺点
虽然点语法调出方法,但是()和括号内的值需要手动敲出(即没有任何提示), 不利于快速编程,方法不熟悉还的去看方法
下面我们通过扩展UILabel来简单实现一些
使用案例
self.label.hw_setText(@"你好").hw_setfont(30);
原理
.h文件
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface UILabel (HWCategory)
- (UILabel *(^)(NSString *text))hw_setText;
- (UILabel *(^)(CGFloat font))hw_setfont;
@end
NS_ASSUME_NONNULL_END
.m文件
#import "UILabel+HWCategory.h"
@implementation UILabel (HWCategory)
- (UILabel * _Nonnull (^)(NSString * _Nonnull))hw_setText {
return ^(NSString *text) {
[self setText:text];
return self;
};
}
- (UILabel * _Nonnull (^)(CGFloat))hw_setfont {
return ^(CGFloat font) {
[self setFont:[UIFont systemFontOfSize:font]];
return self;
};
}
@end