概述
2019独角兽企业重金招聘Python工程师标准>>>
先来看看下面这个方法:
每次订阅时都会发送请求。
//1 创建信号
RACSignal * signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
NSLog(@"发送数据的请求");
//3 发送请求
[subscriber sendNext:@1];
return nil;
}];
//2 订阅信号
[signal subscribeNext:^(id x) {
NSLog(@"订阅者一 %@",x);
}];
[signal subscribeNext:^(id x) {
NSLog(@"订阅者二 %@",x);
}];
测试结果:
如何做到多次订阅一次请求呢?有下面两个方法:
1、RACSubject 多次订阅 一起请求
RACSubject * subject = [RACSubject subject];
[subject subscribeNext:^(id x) {
NSLog(@"1 %@",x);
}];
[subject subscribeNext:^(id x) {
NSLog(@"2 %@",x);
}];
//一次请求
[subject sendNext:@1];
运行测试:
2、RACMulticastConnection 把信号转换为连接类
不管订阅多少次,只会请求一次,连接类必须有信号。
//1 创建信号
RACSignal * signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
NSLog(@"发送数据的请求");
[subscriber sendNext:@"发送的数据"];
return nil;
}];
//2 把信号转换成连接类
RACMulticastConnection * cnt = [signal multicast:[RACSubject subject]];
//3 订阅连接类信号
[cnt.signal subscribeNext:^(id x) {
NSLog(@"订阅者:%@",x);
}];
[cnt.signal subscribeNext:^(id x) {
NSLog(@"订阅者二 %@",x);
}];
//4 连接
[cnt connect];
测试结果:
转载于:https://my.oschina.net/Misayalvyuan/blog/727310
最后
以上就是合适小鸭子为你收集整理的【iOS编程思想】ReactiveCocoa (6) 多次订阅一次请求的全部内容,希望文章能够帮你解决【iOS编程思想】ReactiveCocoa (6) 多次订阅一次请求所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复