@H_403_1@ RACSignal使用步骤:
@H_403_1@1.创建信号@H_403_1@+ (RACSignal *)createSignal:(RACDisposable * (^)(id@H_403_1@<RACSubscriber> subscriber))didSubscribe
@H_403_1@2.订阅信号@H_403_1@,才会激活信号@H_403_1@. - (RACDisposable *)subscribeNext:(void@H_403_1@(^)(id@H_403_1@x))nextBlock
@H_403_1@3.发送信号@H_403_1@- (void@H_403_1@)sendNext:(id@H_403_1@)value
@H_403_1@
@H_403_1@
@H_403_1@ RACSignal底层实现:
1.@H_403_1@创建信号,首先把didSubscribe@H_403_1@保存到信号中,还不会触发。
@H_403_1@2.当信号被订阅,也就是调用@H_403_1@signal的@H_403_1@subscribeNext:nextBlock
@H_403_1@2.2@H_403_1@subscribeNext内部会创建订阅者@H_403_1@subscriber,并且把@H_403_1@nextBlock保存到@H_403_1@subscriber中。
@H_403_1@2.1@H_403_1@subscribeNext内部会调用@H_403_1@siganl的@H_403_1@didSubscribe
@H_403_1@3.@H_403_1@siganl的@H_403_1@didSubscribe中调用@H_403_1@[subscriber sendNext:@1@H_403_1@];
@H_403_1@3.1@H_403_1@sendNext底层其实就是执行@H_403_1@subscriber的@H_403_1@nextBlock
@H_403_1@
@H_403_1@* RACSignal总结:
@H_403_1@ 1.核心:信号类
2.@H_403_1@信号类的作用:只要有数据改变就会把数据包装成信号传递出去
3.@H_403_1@只要有数据改变就会有信号发出
4.@H_403_1@数据发出,并不是信号类发出,信号类不能发送数据
@H_403_1@ 1.创建信号
1.@H_403_1@当一个信号被订阅,创建订阅者,并把nextBlock@H_403_1@保存到订阅者里面。
@H_403_1@ 2.创建的时候会返回@H_403_1@[RACDynamicSignal createSignal:didSubscribe];
@H_403_1@ 3.调用@H_403_1@RACDynamicSignal的@H_403_1@didSubscribe