簡體   English   中英

iPhone:如何在沒有主機的情況下使用可達性?

[英]iPhone: How to use Reachability without host?

在我的應用程序中,如果用戶沒有 inte.net 連接,我需要顯示“無 inte.net 連接”消息。

像這樣使用可達性:

Reachability *netReach = [Reachability reachabilityWithHostName:@"host.name"];

是個壞主意,因為可以使用 inte.net 但主機不可用,對嗎?

那么如何在沒有主機的情況下檢查 inte.net 連接呢? 謝謝...

Reachability *internetReachable = [Reachability reachabilityForInternetConnection];
[internetReachable startNotifier];
if(internetReachable.isReachable)
    NSLog(@"True");

你是絕對正確的。 可達性只檢查某個主機是否可達。 問題是,如果不向主機發送請求,就無法(我能想到)如何確定您是否已連接到 inte.net。

那么您可以做什么(以及 Apple 在其 Reachability 示例中所做的):選擇一個您可以 99.99% 確定主機可用的主機。 例如 google.com 或 apple.com

我認為蘋果依賴於某個主機來檢查 inte.net 連接的事實(以及他們沒有想出其他東西,而不依賴於某個主機的事實)是一個很好的跡象表明檢查以這種方式連接 inte.net 並不是一個壞主意。

編輯

當然,最好的方法(如 Petesh 指向的問題的答案中所述)是簡單地提出您想要提出的請求,然后在錯誤發生時相應地處理錯誤。 換句話說: 1. 提出您的請求 2. 如果失敗,請使用 Reachability 查看缺少的 inte.net 連接是否可能是問題所在

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM