在我的應用程序中,如果用戶沒有互聯網連接,我需要顯示「無互聯網連接」消息。iPhone:如何在沒有主機的情況下使用可達性?
要使用可達這樣的:
Reachability *netReach = [Reachability reachabilityWithHostName:@"host.name"];
是壞主意,因爲互聯網可能是可用,但主機是不是,對不對?
那麼如何檢查沒有主機的互聯網連接?謝謝...
在我的應用程序中,如果用戶沒有互聯網連接,我需要顯示「無互聯網連接」消息。iPhone:如何在沒有主機的情況下使用可達性?
要使用可達這樣的:
Reachability *netReach = [Reachability reachabilityWithHostName:@"host.name"];
是壞主意,因爲互聯網可能是可用,但主機是不是,對不對?
那麼如何檢查沒有主機的互聯網連接?謝謝...
你是對的。可達性僅檢查某個主機是否可達。問題是,如果沒有向主機發送請求,就無法(我能想到)如何確定您是否連接到互聯網。
那麼你可以做什麼(以及蘋果在其可達性示例中做了什麼):選擇一個主機,你可以99.99%確定主機可用。例如google.com或apple.com
我認爲,蘋果是依靠某個主機來檢查互聯網連接(事實上,他們還沒有拿出別的東西,沒有依賴性在某個主機上)是一個非常好的信號,以這種方式檢查互聯網連接並不是一個壞主意。
編輯
課程(在這個問題的答案Petesh所指向的問題描述)的最佳方法是簡單地讓你想,如果他們發生然後相應地處理錯誤的請求。換句話說:1.您的要求。如果它不能使用可達性,看是否缺少互聯網連接可能是問題
Reachability *internetReachable = [Reachability reachabilityForInternetConnection];
[internetReachable startNotifier];
if(internetReachable.isReachable)
NSLog(@"True");
通過復讀來http://stackoverflow.com/questions/6062835/更新-iPhone可達性 - 網絡變化 - 因爲它是一個更好的機制,在網絡不存在的情況下做出反應。即當應用程序通過發出網絡請求嘗試創建網絡功能時,您應該只顯示「無網絡連接」,然後檢查可達性結果,而不是一開始就依賴可達性。 – Petesh 2012-04-06 09:38:32