Skip to content

Latest commit

 

History

History
70 lines (39 loc) · 1.23 KB

File metadata and controls

70 lines (39 loc) · 1.23 KB

6.是否了解链式编程?

链式编程其实就两个要点:
  • 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];
}

如果看不懂自己敲一遍就懂了。