iPhone:如何在没有主机的情况下使用可达性?

iPhone:如何在没有主机的情况下使用可达性?,iphone,reachability,Iphone,Reachability,在我的应用程序中,如果用户没有互联网连接,我需要显示“没有互联网连接”消息 要像这样使用可达性: Reachability *netReach = [Reachability reachabilityWithHostName:@"host.name"]; 这是个坏主意,因为互联网可以使用,但主机不可用,对吗 那么,如何在没有主机的情况下检查internet连接呢?谢谢……你说得绝对正确。可访问性仅检查某个主机是否可访问。问题是,如果不向主机发送请求,就无法(我能想到)确定您是否连接到inter

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

要像这样使用可达性:

Reachability *netReach = [Reachability reachabilityWithHostName:@"host.name"];
这是个坏主意,因为互联网可以使用,但主机不可用,对吗


那么,如何在没有主机的情况下检查internet连接呢?谢谢……

你说得绝对正确。可访问性仅检查某个主机是否可访问。问题是,如果不向主机发送请求,就无法(我能想到)确定您是否连接到internet

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

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

编辑


当然,最好的方法(如Petesh所指问题的答案中所述)是简单地提出您想要提出的请求,然后在出现错误时进行相应的处理。换言之:1。提出你的要求2。如果它失败,请使用可达性来查看丢失的internet连接是否是问题所在

通读答案-因为它是在网络不存在时作出反应的更好机制。i、 e.当应用程序试图通过发出网络请求来实现网络功能时,你应该只显示“无网络连接”,然后你检查可达性结果,而不是一开始就依赖可达性。我听说苹果可以拒绝该应用程序,如果它能显示一条信息“无互联网连接”如果互联网可用..类似的东西..试图找到..它认为你应该没事,如果你尝试先向你的服务器发出请求,并且只有当你的服务器没有响应时才使用可达性检查你是否可以到达另一台主机。但这只是我个人的看法。
Reachability *internetReachable = [Reachability reachabilityForInternetConnection];
[internetReachable startNotifier];
if(internetReachable.isReachable)
    NSLog(@"True");