1. 什么是链式编程
通过点语法调用方法, 清晰、可读性、省力
2.如何才能链式编程
链式编程要返回自身,每一个链式方法都必须返回明确的类型才能一直点下去,使用protocol或继承都不行,必须在每一个方法的声明时明确返回对象的类型。
所以链式文件中不但有该类的方法声明,也有父类的方法声明。
比如 self.name ,实质是getter方法, objc_msgSend 消息发送,(id 和 sel,方法接收者 和 方法编号)
能形成链式,需要支持方法间通信,getter不能加参数,但是链式需要 ,
通信支持 比如 代理、通知、block,只有block 适用
- (UIViewController* (^)(NSString *) )where{
UIViewController* (^block)(NSString *) = ^ (NSString * str){
return self;
}
return block;
}
self.where(@"ddd").XXX
这样就实现了一个最简单的链式编程