先给大家看一下很熟悉的一段代码,大家刚接触时有没有好奇这种调用方式,未知的东西总是diaodiao的.
[redView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.equalTo(@20);
}];
对于这种mas_makeConstraints这种将block作为方法的返回值可以称之为是一种编程思想---函数式. 那么接下来我们就实现make.的这种调用方式,说白了.语法就是get和set方法.
创建一个person的类,使用block作为方法的返回值
- (void(^)(intm))run{
return^(intm){
NSLog(@"我特么跑了 %d米", m);
returnself;
};
Person*p = [Personnew];
//1.
//void(^block)(void) = p.run;
//2.
//block();
p.run(20);//这行代码相当于是1加2
接下来这种make.left.top.这种方式我们可以称之为链式编程思想------方法的最终返回的是方法的调用者
- (Person*(^)(intm))run{
return^(intm){
NSLog(@"我特么跑了 %d米", m);
returnself;
};
}