2016-02-12 11 views
5

私のAPIコールのエラーケースを構築しており、インターネット接続が利用できない場合の状態を確認したいと考えています。到達可能性とNSURLSession応答によるインターネット接続の検出

dataTaskWithRequestはこれをうまく処理しているようで、NSErrorはコード-1009で、インターネットに接続できないという説明が返されます。私はタイムアウトの要求を待つ必要はありません。

代わりにどこのReachability Frameworkを使用したいですか? ありがとう

+0

yamski @が私の答えは、それが役立ちますが、正解に私をリードしていなかった申し訳ありませんが、 –

+0

@RohitKPあなたを助けた以上の助けを必要としません。 – yamski

答えて

12

私は少しの研究を行い、Apple Docsで私の答えを見つけました。

接続を試みることをお勧めします。接続に問題がある場合は、接続をテストするために使用するNSErrorオブジェクトを提供します。

Appleは、エラーを診断して既知の問題をさらにデバッグする方法としてのみ、到達可能性の使用を推奨しています。障害発生後にネットワークがオンラインに戻ったときに到達可能性のみを検出するようにしてください。

「常に接続を確立しようと。ネットワークサービスが利用可能かどうかを推測しようとしないでください、その決意をキャッシュしません。

接続に失敗した場合は、原因を診断するためにSCNetworkReachability APIを使用失敗。 "

ソース:。 https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/WhyNetworkingIsHard/WhyNetworkingIsHard.html#//apple_ref/doc/uid/TP40010220-CH13-SW3

「任意のタスクが完了すると(タスクが正常に完了した場合)、NSURLSessionオブジェクトがエラーオブジェクトかnilでデリゲートのURLSession:task:didCompleteWithError:メソッドを呼び出します

タスクが失敗した場合は、ほとんどのアプリは、ユーザーがダウンロードをキャンセルするか、リクエストが成功しないことを示すエラーが返されるまでリクエストを再試行する必要がありますが、アプリは直ちに再試行するのではなく、到達可能APIを使用して、 notifiを受け取ったときにのみ新しい要求を行う必要があります到達可能性が変わった」

ソース:

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/URLLoadingSystem/NSURLSessionConcepts/NSURLSessionConcepts.html

関連する問題