您的位置:首页 > 理论基础 > 计算机网络

Reactive Cocoa 处理多个网络请求的问题

2016-01-02 17:44 405 查看
在平时写项目的过程中,我们经常遇到一个页面要发送多个网络请求的问题,但是受限于网络,数据返回的时间不一致,但是我们希望所有的数据都返回的时候才显示页面,要处理这样的需求,RAC(Reactive Cocoa)有非常简洁的做法,大概思路如下:

RACSignal *request1 = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {

// 发送请求1
[subscriber sendNext:@"发送请求1"];
return nil;
}];

RACSignal *request2 = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
// 发送请求2
[subscriber sendNext:@"发送请求2"];
return nil;
}];

// 使用注意:几个信号,参数一的方法就几个参数,每个参数对应信号发出的数据。
[self rac_liftSelector:@selector(updateUIWithR1:r2:) withSignalsFromArray:@[request1,request2]];

// 更新UI
- (void)updateUIWithR1:(id)data1 r2:(id)data1
{
NSLog(@"更新UI%@  %@",data1,data1);

}


不得不说,RAC太好用了!

赋两篇入门教程:

最快让你上手ReactiveCocoa之基础篇

最快让你上手ReactiveCocoa之进阶篇
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: