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/