1

我正在做一个必须连接到多个主机的应用程序。最初我没有包含 Apple 的 Reachability 类,只是自己同步完成,后来我了解到这是一个坏主意,在实践中我已经看到了 Apple 警告的问题。所以现在我要异步进行。

问题在于有多台主机 - 我在 2.0 版本的发行说明中看到,如下:

-重写可达性对象以完全异步并简化对多个 SCNetworkReachabilityRefs 的监控。

所以我的问题是——他们做了什么,我利用的最佳方式是什么?通过谷歌搜索,我认为 Reachability 类不再是单例,我应该为每个要跟踪的主机创建一个新的 Reachability 实例。它是否正确?

4

1 回答 1

3

是的,这是正确的 - 示例代码中的 AppDelegate:

http://developer.apple.com/iPhone/library/samplecode/Reachability/listing4.html

正在使用多个实例,关键是您订阅的可达性更改通知包括一个对象,该对象是状态已更改的可达性实例 - 因此,如果它无法到达某个特定主机,则该可达性对象将触发通知。这确实意味着您必须在某处跟踪您的可达性实例以与此返回的对象进行比较(并在以后根据需要释放它们)。

于 2009-11-16T20:22:32.830 回答