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

时间:2010-12-16 13:32:52

标签: iphone ios4 reachability

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

在使用iPhone3gs的iOS4.0.1上似乎没有发生这种情况。

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

1 个答案:

答案 0 :(得分:7)

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

来自Apple关于Reachability项目的文档ReadMe.txt:

  

Reachability样本演示   异步使用   SCNetworkReachability API。您可以使用   API同步,但不是   通过hostName发出同步检查   在主线程上。如果是设备   无法访问DNS服务器或在   慢速网络,同步呼叫   SCNetworkReachabilityGetFlags   功能可以阻止最多30个   秒试图解决   主机名。如果这发生在主要的   线程,应用程序看门狗将   20秒后杀死应用程序   不活动。

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