【发布时间】:2014-06-04 16:33:52
【问题描述】:
我正在使用 ReactiveCocoa 开发应用程序,现在是时候集成 Reachability 来处理网络事件了。
我不确定我所做的工作是否受到了一些 RAC 设计指南的反对。但是根据我一直在研究的内容,我找不到合适的方法来管理这个问题(或者更有可能,我不明白如何)。
我们的想法是拥有一个独特的信号,用于根据 Reachability 的通知发送事件。我们的每个视图控制器都会订阅该信号并以特定的方式对每个信号做出反应(即警报视图、什么都不做等)。
问题是我们只需要可见的 viewcontroller 做出反应,所以我们使用的是 RACDisposable。这样,当 viewcontroller 出现时它会订阅信号,当它消失时我们会处理它。
根据 RAC 的设计指南,应该避免使用 RACDisposable,但我无法以任何其他方式处理此订阅/取消订阅周期。
这种方法对于这种“无限”信号是否正确?
我们想到的另一种选择是使用一个信号,当有新订阅者加入时,它会删除其先前的订阅者。有这种事吗?
提前感谢您可以指向我的方向。
从this SO 帖子我开始尝试takeUntil:[self rac_willDeallocSignal],这在理论上似乎很有用,但对我来说并不真正有用。由于此行为被封装在一个 Manager 中,并且不应该被释放,我不知道这如何对我有利。
我想到的一个选项是takeUntil每当调用停止方法时都会触发一个新信号;但这似乎只是因为我们不使用 RACDisposable。
【问题讨论】:
-
顺便说一句,这是有效的。我只是想知道是否有更好的方法。
-
嘿。您是否有机会分享您的反应式可达性管理器。我可以使用这样的包装器,并希望看到一个例子。
-
@DanielLahyani 抱歉,不,这是在另一家公司工作的项目,不再有访问权限:(
标签: ios objective-c network-programming reachability reactive-cocoa