我正在做一个必须连接到多个主机的应用程序。最初我没有包括Apple的Reachability类,只是我自己同步,I've since learned is a bad idea,并且实际上我已经看到了Apple警告的问题。所以现在我要异步进行。
问题在于拥有多个主机 - 我在版本2.0发行说明中看到了以下内容:
- 将Reachability对象重新编写为完全异步并简化 监视多个SCNetworkReachabilityRefs。
所以我的问题是 - 他们做了什么,对我来说最好的方式是什么?从谷歌搜索,我认为Reachability类不再是单例,我应该为我想要跟踪的每个主机创建一个新的可达性实例。这是对的吗?
答案 0 :(得分:3)
是的,这是正确的 - 示例代码中的AppDelegate:
http://developer.apple.com/iPhone/library/samplecode/Reachability/listing4.html
使用多个实例时,关键是您为可达性更改订阅的通知包括一个对象,该对象是状态已更改的可达性实例 - 因此,如果它无法到达某个特定主机,则该可达性对象会发出通知。它确实意味着你必须跟踪你的可达性实例,以便与这个返回的对象进行比较(并在以后根据需要释放它们)。