And*_*s C 0 network-programming objective-c reachability ios reactive-cocoa
我正在使用ReactiveCocoa开发应用程序,现在是时候整合Reachability来处理网络事件了.
我不确定我所做的工作,因为一些RAC设计指南建议反对它.但是从我一直在研究的内容来看,我找不到合适的方法来管理这个(或者更可能的是,我不明白怎么做).
我们的想法是拥有一个独特的信号,在Reachability的通知上发送事件.我们的每个视图控制器都会订阅该信号,并以特定的方式对每个信号做出反应(即alertview,什么也不做,等等).
问题是我们只需要可见的viewcontroller来做出反应,所以我们使用的是RACDisposable.这样,当一个viewcontroller出现时,它会订阅信号,当它消失时,我们就会处理它.
根据RAC的设计指南,应避免使用RACDisposable,但我无法以任何其他方式处理此订阅/取消订阅周期.
这种方法对于这种"无限"信号是否正确?
我们的另一种选择是使用一个信号,当一个新的用户加入时,它会删除以前的用户.这样的事情存在吗?
提前感谢任何光线,你可以指出我的方向.
从这个 SO帖子我开始尝试takeUntil:[self rac_willDeallocSignal]这在理论上似乎有用,但对我来说并不适用.由于此行为封装在Manager中,并且不应该取消分配,我不知道这对我有利.
我想到的一个选项是,takeUntil只要调用一个停止方法,就会触发一个新信号; 但它似乎只是因为我们不使用RACDisposable.
从这个SO帖子我开始尝试takeUntil:[self rac_willDeallocSignal]这在理论上似乎有用,但对我来说并不适用.由于此行为封装在Manager中,并且不应该取消分配,我不知道这对我有利.
您的视图控制器可以执行以下操作:
- (void)viewWillAppear
{
    RACSignal *disappear = [self rac_signalForSelector:@selector(viewWillDisappear)];
    [[self.manager.reachabilitySignal takeUntil:disappear] subscribeNext:^(id status) {
        // do whatever needs doing with reachability status here
    }];
}
reachabilitySignal根据是否有任何订户,可以根据需要实现您的Manager 以注册/取消注册可达性状态更改.
| 归档时间: | 
 | 
| 查看次数: | 874 次 | 
| 最近记录: |