最近看到一次词语"响应式编程"(稍后会分享),联想到之前学习Masonry时的"链式编程",知其然不知其所以然,所有抽时间学习一下分享出来,当做笔记;
大家都知道block具有两个重要的功能,第一:可以作为类的属性被点语法"点"出来,又可以当做函数被直接调用;第二,block作为一个变量,又可以把他作为函数指针一样调用
我们在oc中使用"[ ]"调用方法,当中括号嵌套三四层的时候,我们看着就凌乱了.但是swift中那种通过"点"调用方法的形式,看着就很清楚.
@interface Person : NSObject //申明
- (Person *(^)(NSString *name))studt; //block的getter方法
- (Person *(^)())run; //block的getter方法
@end
#import "Person.h" //实现
@implementation Person
- (Person *(^)(NSString *name))studt {
return ^(NSString *name){
NSLog(@"name = %@",name);
return self;
};
}
- (Person *(^)())run {
return ^() {
NSLog(@"跑步");
return self;
};
}
@end
// 调用
Person *person = [[Person alloc] init];
person.studt(@"1").run(); //getter方法调用
详细见demo 给view写一个分类 https://github.com/dabainihao/ChainProgram