ReactiveCocoa可以給一个方法的调用添加绑定,或者说是观察者。
rac_signalForSelector:fromProtocol:(绑定协议的方法)
rac_signalForSelector:(绑定类的方法)
原理:
之所以让所有的方法调用统一走方法转发流程,目的就是可以方便的在invocation对象中获取方法的参数。
注意点:
上面所说的 “当前类” ,并不是实际代码中实例化的类,而是我们动态创建了一个类A,并继承这个类,然后将这个类的isa指针设置成类A(这里就是采用KVO的实现原理)。
因为这个类有可能添加了KVO实现,那么这个类的isa指针也就不是self.class所指向的类了,这时我们需要在这个类的isa指针所指向的类中重写或添加以上方法。
其实KVO的设计模式就是采用类簇的方式实现的,可以了解一下类簇。
ReactiveCocoa的rac_signalForSelector实现原理
原文:https://www.cnblogs.com/zbblog/p/12540628.html