- 1,為什么要用RACMulticastConnection:
//如下,有的時(shí)候多次訂閱只是想要拿到請(qǐng)求的數(shù)據(jù),不需要多次請(qǐng)求,因?yàn)槎啻握?qǐng)求會(huì)浪費(fèi)資源,影響速度,所以下面的常規(guī)方法就不太適用了
//因?yàn)槊坑嗛喴淮危蜁?huì)調(diào)用信號(hào)中的block一次,也就是需要發(fā)送多次相同的網(wǎng)絡(luò)請(qǐng)求
RACSignal *signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
NSLog(@"發(fā)送數(shù)據(jù)請(qǐng)求");
[subscriber sendNext:@"請(qǐng)求得到的數(shù)據(jù)"];
return nil;
}];
[signal subscribeNext:^(id x) {
NSLog(@"%@",x);
}];
[signal subscribeNext:^(id x) {
NSLog(@"%@",x);
}];
}
- 2.1,如何使用RACMulticastConnection:(只請(qǐng)求一次,多次調(diào)用請(qǐng)求到的數(shù)據(jù))
//1,創(chuàng)建信號(hào)
RACSignal *signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
NSLog(@"請(qǐng)求數(shù)據(jù)");
[subscriber sendNext:@"請(qǐng)求到的數(shù)據(jù)"];
return nil;
}];
//2,建立連接,使用這個(gè)方式建立連接只能先連接,后發(fā)送請(qǐng)求也就是訂閱
RACMulticastConnection *multicaseConnection = [signal publish];
//3,發(fā)送請(qǐng)求
[multicaseConnection.signal subscribeNext:^(id x) {
NSLog(@"%@", x);
}];
[multicaseConnection.signal subscribeNext:^(id x) {
NSLog(@"%@", x);
}];
//4,注意:最后需要手動(dòng)連接
[multicaseConnection connect];
- 2.2, 使用RACMulticastConnection:使用第二種建立連接的方式。
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。