【发布时间】:2014-05-01 17:06:08
【问题描述】:
我有一个merge 操作,它取决于两个异步操作的结果。第一个是网络操作,第二个是位置授权成功或失败。我不关心这些操作的值,它们都已经完成了。
这就是它的样子:
RACSignal *networkCallReturned = [[[NSNotificationCenter defaultCenter] rac_addObserverForName:kNetworkCallReturned object:nil] take:1];
RACSignal *locationPermission = [[[NSNotificationCenter defaultCenter] rac_addObserverForName:kLocationManagerGotLocationPermission object:nil] take:1];
@weakify(self);
[[RACSignal merge:@[ networkCallReturned, locationPermission ]
subscribeCompleted:^{
@strongify(self);
// Do something else here
}];
我遇到的问题是当我没有可达性时没有进行网络调用。这也不是我能改变的。如果我没有可达性,如何有条件地触发 networkCallReturned 信号?
我是否必须设置另一个监控可达性的信号,然后获取从networkCallReturned 或可达性信号发送的第一个值?
【问题讨论】:
标签: ios objective-c reactive-cocoa