苹果提供了一个名为Reachability的类。我差点使用它,但后来发现很多人在SO上报告问题。例如,它会报告错误的正面或多次弹出相同的错误通知,使用户多次点击“无互联网”警报视图。
我为什么不能简单地尝试在后台获取数据并查看结果呢?
我为什么不能简单地尝试在后台获取数据并查看结果呢?
NSData *download = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlStr]];
经过检查,当没有网络时,“download”将为零。然后我可以弹出一个UIAlertView并进行投诉。
还有一些用户认为仅检查“互联网连接”是愚蠢的,因为Reachability只会告诉是否连接到网关。网关可能没有互联网,我的WiFi路由器经常这样做。iPad具有WiFi接收功能,但没有互联网。
其他人说最好测试特定URL并查看服务器是否存在。
那么为什么要使用Reachability类呢?为什么不尝试实际下载,如果什么都没有发生,就认为出了问题?