0

在我的应用程序中,如果用户没有互联网连接,我需要显示“没有互联网连接”消息。

要像这样使用可达性:

Reachability *netReach = [Reachability reachabilityWithHostName:@"host.name"];

是个坏主意,因为互联网可以使用但主机不可用,对吗?

那么如何在没有主机的情况下检查互联网连接?谢谢...

4

2 回答 2

1
Reachability *internetReachable = [Reachability reachabilityForInternetConnection];
[internetReachable startNotifier];
if(internetReachable.isReachable)
    NSLog(@"True");
于 2012-04-06T09:56:19.747 回答
0

你是绝对正确的。可达性只检查某个主机是否可达。问题是,如果不向主机发送请求,就无法(我能想到的)如何确定您是否连接到互联网。

那么你可以做什么(以及 Apple 在其可达性示例中所做的):选择一个主机,你可以 99.99% 确定主机可用。例如 google.com 或 apple.com

我认为苹果依赖某个主机来检查互联网连接的事实(以及他们没有想出其他东西,而不依赖于某个主机的事实)是一个很好的迹象,表明检查互联网连接以这种方式并不是一个坏主意。

编辑

当然,最好的方法(如对 Petesh 所指问题的回答中所述)是简单地提出您想要提出的请求,然后在发生错误时相应地处理错误。换句话说: 1. 提出您的请求 2. 如果请求失败,请使用 Reachability 查看丢失的 Internet 连接是否可能是问题所在

于 2012-04-06T09:42:53.830 回答