给大家介绍一个在ReactiveCocoa中经常使用的类,以及使用方法。
RACSiganl
使用的三个步骤:1.创建信号 2.订阅信号 3.发送信号
//1.创建信号
RACSignal * signal = [RACSignal createSignal:^RACDisposable * _Nullable(id<RACSubscriber> _Nonnull subscriber) {
//3.发送信号
[subscriber sendNext:@"我是要传递的参数"];
return nil;
}];
//2.订阅信号
[signal subscribeNext:^(id _Nullable x) {
NSLog(@"%@",x);
}];
源码解析:
1.创建信号:createSignal:做的操作是返回带有block(didSubscribe)的信号对象,类型为RACDynamicSignal。
2.订阅信号:subscribeNext:保存block(nextBlock),并执行block(didSubscribe),同时将block(nextBlock)传入block(didSubscribe)。
3.发送信号:block(didSubscribe)中调用sendNext:作用是执行block(nextBlock),并将传的对象传进去。