OGeek|极客世界-中国程序员成长平台

标题: ios - ReactiveCocoa 条件异步信号 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 09:36
标题: ios - ReactiveCocoa 条件异步信号

我有一个 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 或可达性信号发送的第一个值?



Best Answer-推荐答案


可以监控可达性,但臭名昭著地充满了竞争和边缘情况。通过捕获因无法完成网络调用或网络调用超时而导致的错误,您似乎会得到更好的服务。

关于ios - ReactiveCocoa 条件异步信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23412639/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4