Apple 提供了一个名为 Reachability 的类。我几乎使用它,但后来发现很多人报告 SO 问题。例如,它会报告误报或多次显示相同的错误通知,使用户多次点击“无互联网”警报视图。
为什么我不能简单地尝试在后台获取数据并查看我得到了什么?
NSData *download = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlStr]];
我查了一下:当没有互联网时,download
它将是零。然后我可以调出 UIAlertView 并抱怨。
还有一些用户说只检查“互联网连接”是愚蠢的,因为可达性只告诉是否连接到网关。网关可以没有互联网。我的 WiFi 路由器一直这样做。iPad 有 WiFi 接收但没有互联网。
其他人说最好测试一个特定的 URL 并查看服务器是否在那里。
那么,为什么还要打扰 Reachability 类呢?为什么不尝试实际下载,如果没有任何反应,假设有问题?