RACMulticastConnection
当一个信号,被多次订阅时,为了保证创建信号时,避免多次调用创建信号中的block,造成副作用,可以使用该类处理。使用步骤:
1. 创建信息
2. 将信号转换成连接类
3. 订阅连接类的信号
4. 连接
以下为代码部分:
// 1. 创建信号
RACSignal signal = [RACSignal createSignal:^RACDisposable _Nullable(id _Nonnull subscriber) {
NSLog(@”发送热门模块请求”);
[subscriber sendNext:@1];
return nil;
}];
// 2. 把信号转换成连接类
// 确定源信号的订阅者RACSubject
// RACMulticastConnection *signalConn = [signal publish];
RACMulticastConnection *signalConn = [signal multicast:[RACReplaySubject subject]];
// 3. 多个订阅
[signalConn.signal subscribeNext:^(id _Nullable x) {
NSLog(@”订阅1 : %@”, x);
}];
[signalConn.signal subscribeNext:^(id _Nullable x) {
NSLog(@”订阅2 : %@”, x);
}];
[signalConn.signal subscribeNext:^(id _Nullable x) {
NSLog(@”订阅3 : %@”, x);
}];
// 4. 连接
[signalConn connect];
执行log输出如下: