RAC流程分析

1、createSignal产生信号(dynamicSignal类型)并将block传--- 到RACDynamicSignal类---> 保存到 didSubscribe(block类型)

2、sunscribleNext订阅信号将nextblock传 ---> 到RACSubscriber类创建这个类型的订阅者 --->  并保存nextBlock   ----> 最后将 RACSubscriber类型的订阅者   发送到 ---> RACDynamicSignal类 --->然后执行didSubscribeBlock回调第一步 产生信号 的block

3、subscriber(PassthroughSubscriber类)sendNext发送信号 --->到PassthroughSubscriber类利用保存的RACSubscriber再调用sendnext执行第二步保存的  nextBlock 产生回调


RACScheduler 调度者    多个订阅信号线程处理

RACSubscriptionScheduler 

currentScheduler已经创建 !=nil    ---> 执行didsubscribleBlock

currentScheduler == nil   ---> 则异步创建一个队列   执行didsubscribleBlock


RACDisposable  销毁者

- (void)dispose 外部调用手动销毁

didsubscribeBlock  执行完毕  RACDisposable * _Nullable(id _Nonnull subscriber)  临时对象释放   自动销毁

你可能感兴趣的:(RAC流程分析)