链式编程

链式编程其实就两个要点:
  • 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];
}
原文地址:https://www.cnblogs.com/likun123/p/9560612.html