Reachability示例代码中的SCNetworkReachabilityGetFlags需要很长时间才能返回

Rem*_*ver 2 iphone reachability ios4

我在iPhone4上使用iOS4.1.我也在使用最新版本的Reachability代码.我的设备没有连接,但似乎代码等待超时,否则设备需要很长时间才能报告可达性状态.

这似乎不会发生在使用iPhone3gs的iOS4.0.1上.

还有其他人遇到过这个吗?除了开始一个新线程之外,有什么方法可以绕过它吗?

mak*_*dad 7

你确定你是异步使用它吗?

来自Apple关于可达性项目的文档ReadMe.txt:

Reachability示例演示了SCNetworkReachability API的异步使用.您可以同步使用API​​,但不要在主线程上通过hostName发出同步检查.如果设备无法访问DNS服务器或处于慢速网络,则对SCNetworkReachabilityGetFlags函数的同步调用可能会阻止最多30秒尝试解析hostName.如果在主线程上发生这种情况,应用程序监视程序将在20秒不活动后终止应用程序.

所以,我认为你是对的 - 开始一个后台线程来处理它.