我iPhone應用程序可訪問性網絡改變事件是與處理一切,在viewDidLoad中我檢查,看看是否有互聯網連接,如果我們這樣做,我們從網頁加載,如果沒有,我們從加載一個觀點很簡單本地資源。這工作正常。沒有發射
//in viewDidOnload
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleNetworkChange:)
name:kReachabilityChangedNotification object:nil];
reachability = [Reachability reachabilityForInternetConnection];
[reachability startNotifier];
NetworkStatus status = [reachability currentReachabilityStatus];
if (status == NotReachable) {
//Do something offline
} else {
//Do sometihng on line
}
- (void)handleNetworkChange:(NSNotification *)notice{
NetworkStatus status = [reachability currentReachabilityStatus];
if (status == NotReachable) {
//Change to offline Message
} else {
//Relaunch online application
}
}
爲了測試我的handleNetworkChange事件,我關閉了所有蜂窩數據,但是沒有開啓wifi。在WiFi的範圍內,我開始了應用程序,一切都很完美。然後我走在無線網絡的範圍之外,但是我的handleNetworkChange從不會觸發(使用uiAlertView進行測試)。站在無線的範圍之外,我的應用程序啓動離線消息就好了。
我懷疑是它與視圖控制器的生命週期問題,應將此代碼放在AppDelegate的功能?可能這是一個更好的設計開始。
我認爲應該在init init可達性實例後面聲明NSNotification行。 – Raptor 2012-02-09 02:48:08