链式编程,顾名思义就是一条链子,一直.下去。
例如person.name(@"张三").age(25).height(175);
这里我们思考一下
1、能.出来的应该是属性 2、属性后面有个小括号,里面传参,应该是block 3、能继续. 那么前一个属性的返回值应该是该对象本身
带着这3点思维,我们试着玩一下链式编程
定义一个Person类,写几个符合链式编程的属性
@property (nonatomic, copy, readonly) Person *(^name)(NSString *);
-(Person *(^)(CGFloat))height;
-(Person *(^)(NSUInteger))age;
复制代码
解释一下上面的代码:看着是一个属性两个方法,其实你在仔细看下,下面的那两个方法是不是属性的Getter方法呢,所以怎么写,看自己的喜欢了。
使用
Person *person = [[Person alloc]init];
person.name(@"张三").age(25).height(175);
复制代码
以上就是ios的一个链式编程的思维。
demo下载地址:https://github.com/xiaozhuxiong121/ChainProgramming