一.信号类:表示信号数据产生
- RACSignal
- RACDynamicSignal -> didSubscribe(block)
- RACSubject -> subscribers(数组)
- RCCReplaySubject ->valuesReceived(数组)
二.不同信号订阅方式不同
- RACDynamicSignal:1.创建信号订阅者RACSubscriber 2.执行didsubscribe
- RACSubject:1.创建信号订阅者RACSubscriber 2.保存订阅者
- RACReplaySubject:1.创建信号订阅者RACSubscriber 2.拿到当前订阅者,发送之前保存的值
三.订阅者发送数据
- RACSubscriber
- RACSubject -> subscribers(数组)
- RACReplaySubject ->valuesReceived(数组)
不同的订阅者,发送数据的方式不同
- [RACSubscriber sendNext:]; 执行nextBlock
- [RACSubject sendNext:] 遍历所有订阅者,发送数据
- [RACReplaySubject sendNext] 1.保存发送的数据 2.遍历所有订阅者,发送数据
四.rac_liftSelector:withSignalFromArray方法介绍
- 接收多个信号并保存在信号数组,并且等所有信号发送完毕后执行某个方法
- 方法的参数必须要跟