2013-03-11 67 views
0

我试图实现的是监控任何互联网连接?所以手机需要连接到互联网。如果它显示带有选项的UIAlertView再次尝试(再次尝试连接以查看它是否已更改)。设置可达性来监控连接并显示警报

我想使用可达性和连接到api.parse.com链接。

在我的AppDelegate我称之为可达性的设置是这样的:

// 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语句来检查该链接是否可以通过互联网连接,如果它不是我可以通过AlertView。然后,我可以为UIAlertView设置一个布尔值,即使用showsConnectionAlert,然后可以在连接更改和拾取时将其取消。我也不确定该把它放在哪里。

回答

0

一个使用可达类最简单的方法是将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]; 

}   

那应该简化这个过程。让我知道你如何继续。 T

+0

我已经添加了编辑到我的问题。你可以看到我检查了networkStatus for NotReachable。这是否意味着我正在检查Internet连接或主机连接?在我的问题的第一个方法中,我为主机和Internet连接都设置了通告程序。这是否意味着每个可达性的变化,尽管互联网连接或主机,第二种方法被称为? – StuartM 2013-03-11 22:12:25