繁体   English   中英

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

[英]iPhone: How to use Reachability without host?

在我的应用程序中,如果用户没有 inte.net 连接,我需要显示“无 inte.net 连接”消息。

像这样使用可达性:

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

是个坏主意,因为可以使用 inte.net 但主机不可用,对吗?

那么如何在没有主机的情况下检查 inte.net 连接呢? 谢谢...

Reachability *internetReachable = [Reachability reachabilityForInternetConnection];
[internetReachable startNotifier];
if(internetReachable.isReachable)
    NSLog(@"True");

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

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

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

编辑

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM