使用Reachability 2.2检查Internet连接

时间:2010-07-28 14:57:21

标签: iphone objective-c reachability

我们正在尝试在没有连接时显示警报视图,并且我们正在使用来自apple的可访问性2.2类。我们遇到的问题是,在程序开始时,我们总是得到一个警报视图,没有互联网连接,但我们连接到互联网。有没有正确的方法来检查这些类的互联网连接?

2 个答案:

答案 0 :(得分:0)

我记得读过Apple代码示例中的Reachability代码并不适合进行网络检查。建议的方法是检查设备是否可以看到您的网站(或网页),如果没有出错。

我搜索了我读到的地方,但找不到原文。这是使用该方法的不同链接:

http://www.iphonedevx.com/?p=657

答案 1 :(得分:0)

可达性需要一些时间才能完成任务。 请耐心等待。 使用通知来获得结果。

这就是我的所作所为:

BOOL hasInet;
Reachability *connectionMonitor = [Reachability reachabilityForInternetConnection];
[[NSNotificationCenter defaultCenter]
    addObserver: self
    selector: @selector(inetAvailabilityChanged:)
    name:  kReachabilityChangedNotification
    object: connectionMonitor];

hasInet = [connectionMonitor currentReachabilityStatus] != NotReachable;

然后

-(void)inetAvailabilityChanged:(NSNotification *)notice {
    Reachability *r = (Reachability *)[notice object];
    hasInet = [r currentReachabilityStatus] != NotReachable;
}

对我很好。