链式编程思想

最近看到一次词语"响应式编程"(稍后会分享),联想到之前学习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










你可能感兴趣的:(链式编程思想)