2013-03-11 71 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