2

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

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

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

4

1 回答 1

7

您确定要异步使用它吗?

来自 Apple 在 Reachability 项目上的文档 ReadMe.txt:

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

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

于 2011-01-05T23:14:45.900 回答