链式编程
链式编程其实就两个要点:
- Block 作为当前对象的属性。
- Block 返回值是当前对象。
写个特别简单的小Demo:
.h文件
#import <UIKit/UIKit.h> @interface SecViewController : UIViewController @property (nonatomic,copy ) SecViewController *(^setUpBackGroundColor)(UIColor *color) ; @property (nonatomic,copy ) SecViewController *(^setUpTitle)(NSString *title); @end
.m文件
@implementation SecViewController - (SecViewController *(^)(NSString *))setUpTitle { return ^(NSString *title) { self.title = title; return self; }; } - (SecViewController *(^)(UIColor *))setUpBackGroundColor { return ^(UIColor *backColor) { self.view.backgroundColor = backColor; return self; }; } @end
外部调用
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { SecViewController *sec = [SecViewController new]; sec.setUpBackGroundColor([UIColor orangeColor]).setUpTitle(@"heihei"); [self.navigationController pushViewController:sec animated:YES]; }