使用 Reachability 2.2 检查 Internet 连接
Posted
技术标签:
【中文标题】使用 Reachability 2.2 检查 Internet 连接【英文标题】:Checking Internet connection with Reachability 2.2 【发布时间】:2010-07-28 14:57:21 【问题描述】:我们正在尝试在没有连接时显示警报视图,并且我们正在使用来自苹果的可达性 2.2 类。我们遇到的问题是,在程序开始时,我们总是收到一个警报视图,即没有互联网连接,但我们已连接到互联网。是否有正确的方法来检查这些类的 Internet 连接?
【问题讨论】:
你看过可达性示例代码吗? 【参考方案1】:我记得读过 Apple 代码示例中的可达性代码对于进行网络检查不是很好。推荐的方法是检查设备是否可以看到您的网站(或网页),如果没有则给出错误。
我搜索了我在哪里读到这篇文章,但找不到原文。这是使用该方法的另一个链接:
http://www.iphonedevx.com/?p=657
【讨论】:
在那个例子中,他使用了可达性类。 问题出在 Apple 的 Reachability 类的旧版本中 - 最新版本 (v. 2.n.n) 已被大量重写。【参考方案2】:可达性需要一些时间来完成它的任务。 所以要有耐心。 使用通知获取结果。
这就是我的工作:
BOOL hasInet; 可达性 *connectionMonitor = [可达性可达性ForInternetConnection]; [[NSNotificationCenter 默认中心] 添加观察者:自我 选择器:@selector(inetAvailabilityChanged:) 名称:kReachabilityChangedNotification 对象:连接监视器]; hasInet = [connectionMonitor currentReachabilityStatus] != NotReachable;然后
-(void)inetAvailabilityChanged:(NSNotification *)notice 可达性*r = (可达性*)[通知对象]; hasInet = [r currentReachabilityStatus] != NotReachable;这对我很有效。
【讨论】:
以上是关于使用 Reachability 2.2 检查 Internet 连接的主要内容,如果未能解决你的问题,请参考以下文章
调用 Reachability startNotifier 后,Network 状态变为 0
NetworkReachabilityManager 或 Reachability 无法识别在没有互联网的情况下连接 wifi