RAC的基本使用

RAC的基本使用


在RAC中,一切都是信号!

RACSignal

RACSignal实例化一个信号,首先,需要创建一个信号,此时,该信号没有订阅者,称为冷信号;当有订阅者订阅了该信号,改信号则变为热信号;当信号监听的资源发生改变时,此信号就会给监听者发送消息!

总的来说,RACSignal的使用分三个步骤
1.创建信号,通过RACSignal来创建信号,此时信号为冷信号
2.订阅信号,订阅者订阅这个信号,此时变为热信号
3.发送信号,信号发送信号,订阅者接收到信号

经过了简单的使用,下边我们看一下RACSignal的实现原理:


RACSignal原理.png
  1. 首先RACSignal中+createSignal会调用子类实现
  2. 子类RACDynamicSignal中+createSignal方法会将didSubcriber这个Block以属性_didSubcriber的形式保存
  3. RACSignal调用+subscribeNext订阅信号,+subscribeNext中调用RACSubscriber对象的+subscriberWithNext:error:completed方法将订阅信号的Block传递过去
    4.RACSubscriber对象的+subscriberWithNext:error:completed方法将订阅信号的Block保存在_next中
    5.+subscribeNext中调用创建信号时保存的_didSubcriber
  4. 将存储了_next的RACSubscriber对象传递过去
  5. _didSubcriber中取到存储了_next的RACSubscriber对象取出来
  6. RACSubscriber对象调用_next,此时,就将需要发送的值发送到了订阅者的回调中
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容