Apple 提供了一个名为 Reachability 的类。我几乎用过它,但后来发现很多人在 SO 上报告问题。例如,它会报告误报或多次显示相同的错误通知,从而使用户多次点击“无互联网”警报 View 。

为什么我不能简单地尝试在后台获取数据并查看我得到了什么?

NSData *download = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlStr]];

我检查过:当没有互联网时,download 将为零。然后我可以调出一个 UIAlertView 并提示。

还有一些用户说只检查“互联网连接”是愚蠢的,因为可达性只告诉你是否连接到网关。网关可以没有互联网。我的 WiFi 路由器一直这样做。 iPad 有 WiFi 信号,但没有网络。

其他人说最好测试特定的 URL 并查看服务器是否在那里。

那么为什么要为 Reachability 类烦恼呢?为什么不尝试实际下载,如果没有任何 react ,假设有什么问题?

最佳答案

如何确定当前事件的网络连接是 Wi-Fi 还是运营商的网络?
SCNetworkReachability API 允许应用程序确定系统当前网络配置的状态和目标主机的可达性。 API 返回的标志之一 kSCNetworkReachabilityFlagsIsWWAN 将告诉您到目标主机的网络连接是否使用运营商网络...

来自网络和 Internet 编码方法

关于iphone - 为什么要为 Apple 的 Reachability 类烦恼而不只是尝试建立实际的连接?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10801245/

10-09 18:17
查看更多