0

我想要实现的是监控任何互联网连接?所以手机需要主动连接到互联网。如果它确实显示一个 UIAlertView 并带有重试选项(再次尝试连接以查看它是否已更改)。

我正在尝试使用可达性和连接到 api.parse.com 链接。

在我的 AppDelegate 中,我这样调用 Reachability 的设置:

// Use Reachability to monitor connectivity
[self monitorReachability];

monitorReachability 设置如下:

- (void)monitorReachability {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:ReachabilityChangedNotification object:nil];

self.hostReach = [Reachability reachabilityWithHostName: @"api.parse.com"];
[self.hostReach startNotifier];

self.internetReach = [Reachability reachabilityForInternetConnection];
[self.internetReach startNotifier];

self.wifiReach = [Reachability reachabilityForLocalWiFi];
[self.wifiReach startNotifier];

}

我也有如下的可达性更改方法:编辑 - 更新方法

- (void)reachabilityChanged:(NSNotification* )note {
Reachability *curReach = (Reachability *)[note object];
NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
NSLog(@"Reachability changed: %@", curReach);
networkStatus = [curReach currentReachabilityStatus];

if (networkStatus == NotReachable) {
    NSLog(@"NOT REACHABLE");
    return;
} else {
    NSLog(@"REACHABLE");
}

我想了解的是回复。从上面看起来我有一个指向当前状态的指针,我不知道如何使用它。基本上我想要一个 if 语句来检查该链接是否可以通过 Internet 连接访问,如果不是,我可以通过 AlertView。然后,我可以为 UIAlertView 设置一个布尔值以使用,即显示ConnectionAlert,然后可以在连接更改和拾取时将其关闭。我也不确定该放在哪里。

4

1 回答 1

0

使用 Reachability 类的最简单方法之一是将 Reachability.h 导入您的 rootViewController 或任何需要连接的人,然后只需运行此代码...

 Reachability *reach = [Reachability reachabilityForInternetConnection];

 NetworkStatus netStatus = [reach currentReachabilityStatus];    
 if (netStatus == NotReachable) {        
 NSLog(@"No internet connection!");   
//Alert View in here      
} 
else {        
//Do something in here with the connecion e.g:

[self performSelector:@selector(startNSURLRequest) withObject:nil afterDelay:30.0];

}        

那应该稍微简化一下过程..让我知道您的进展情况。吨

于 2013-03-11T21:34:06.433 回答