我在iPhone4上使用iOS4.1。我也在使用最新版本的Reachability代码。我的设备没有连接,但似乎代码等待超时,否则设备需要很长时间才能报告可达性状态。
在使用iPhone3gs的iOS4.0.1上似乎没有发生这种情况。
还有其他人遇到过这个吗?除了开始一个新线程之外,有什么方法可以绕过它吗?
答案 0 :(得分:7)
你确定你是异步使用它吗?
来自Apple关于Reachability项目的文档ReadMe.txt:
Reachability样本演示 异步使用 SCNetworkReachability API。您可以使用 API同步,但不是 通过hostName发出同步检查 在主线程上。如果是设备 无法访问DNS服务器或在 慢速网络,同步呼叫 SCNetworkReachabilityGetFlags 功能可以阻止最多30个 秒试图解决 主机名。如果这发生在主要的 线程,应用程序看门狗将 20秒后杀死应用程序 不活动。
所以,我认为你是对的 - 开始一个后台线程来处理它。