AFNetworking
すべてのリクエスト(ログイン、URLからのデータの取得など)に対してアプリで使用します。
これを例に取ります: ユーザーがログイン ボタンをクリックしても接続がありませんUIAlertView
。エラーを示すメッセージを即座に表示するにはどうすればよいですか? 唯一の方法は、リクエストのタイムアウトを待ってfailure
ブロックを実行することですか? 接続の有無を瞬時に確認する方法はありませんか?
ありがとう!
AFNetworking
すべてのリクエスト(ログイン、URLからのデータの取得など)に対してアプリで使用します。
これを例に取ります: ユーザーがログイン ボタンをクリックしても接続がありませんUIAlertView
。エラーを示すメッセージを即座に表示するにはどうすればよいですか? 唯一の方法は、リクエストのタイムアウトを待ってfailure
ブロックを実行することですか? 接続の有無を瞬時に確認する方法はありませんか?
ありがとう!
0.9 の時点で、AFHTTPClient
実際にはネットワーク到達可能性が組み込まれています (Apple の前述の到達可能性コードへのより単純なインターフェイス)。フレームワークを含めるだけで、到達可能性の状態が変化したときの応答を指定するためにSystemConfiguration
使用できます。-setReachabilityStatusChangeBlock:
これらは、AFNetworkoring クラスを追加した後にAFNetworking
利用するために従わなければならない手順です-setReachabilityStatusChangeBlock:
SystemConfiguration.framework
プロジェクトに追加#import <SystemConfiguration/SystemConfiguration.h>
AFHTTPClient
、init 関数に以下のコード行を追加します。[self setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus ステータス) { NSLog(@"changed %d", status); //ここにあなたのコード }];
「到達可能性」を使用して、デバイスがネットワークに接続されているかどうかを判断できる場合があります。これがAppleDocへのリンクです。:到達可能性
例えば :
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNetworkChange:) name:kReachabilityChangedNotification object:nil];
reachability = [Reachability reachabilityForInternetConnection];
[reachability startNotifier];
NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];
if(remoteHostStatus == NotReachable) {
//Your UIAlertView
}
到達可能性を使用するのはどうですか?
接続を試みる前に、接続を試みる正当な理由があるかどうかを確認できます。
Apple Sample Project for Reachabilityは、初期ステータスを取得する方法を示しているようです。