我正在構建我的API調用的錯誤情況,並希望檢查互聯網連接不可用時的情況。可達性與NSURLSession響應檢測互聯網連接
dataTaskWithRequest
似乎處理這很好,並返回NSError
與代碼-1009與描述沒有互聯網連接。我不必等待請求超時。
在哪些情況下我想使用可達框架? 謝謝
我正在構建我的API調用的錯誤情況,並希望檢查互聯網連接不可用時的情況。可達性與NSURLSession響應檢測互聯網連接
dataTaskWithRequest
似乎處理這很好,並返回NSError
與代碼-1009與描述沒有互聯網連接。我不必等待請求超時。
在哪些情況下我想使用可達框架? 謝謝
我做了一些研究,並在Apple Docs中找到了我的答案。
建議的最佳做法是嘗試連接。如果連接存在問題,它會爲您提供一個NSError對象,您應該使用它來測試連接。
Apple建議僅將Reachability用作診斷錯誤並進一步調試已知問題的一種方法。您似乎應該只使用可達性來檢測網絡在故障後重新聯機。
「總是試圖建立連接。不要試圖猜測網絡服務是否可用,不緩存該確定。
如果連接失敗,請使用SCNetworkReachability API,以幫助診斷的原因失敗。」
「當所有任務完成後,NSURLSession
對象調用委託的URLSession:task:didCompleteWithError:
方法有兩種錯誤的對象或零(如果任務成功完成)
如果任務失敗。大多數應用程序應該重試請求,直到用戶取消下載或服務器返回一個錯誤,指示請求永遠不會成功。然而,您的應用程序不應該立即重試,而應該使用可達性API來確定服務器是否可到達,並且只有在收到通知時才應提出新的請求可達性發生了變化。「
來源:
yamski @做我的回答幫你或者需要更多的幫助 –
@RohitKP,對不起,它並沒有幫助,反而導致我在正確的解決方案。 – yamski