链式编程

495 阅读1分钟

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
这样就实现了一个最简单的链式编程