23

AFNetworkingすべてのリクエスト(ログイン、URLからのデータの取得など)に対してアプリで使用します。

これを例に取ります: ユーザーがログイン ボタンをクリックしても接続がありませんUIAlertView。エラーを示すメッセージを即座に表示するにはどうすればよいですか? 唯一の方法は、リクエストのタイムアウトを待ってfailureブロックを実行することですか? 接続の有無を瞬時に確認する方法はありませんか?

ありがとう!

4

5 に答える 5

57

0.9 の時点で、AFHTTPClient実際にはネットワーク到達可能性が組み込まれています (Apple の前述の到達可能性コードへのより単純なインターフェイス)。フレームワークを含めるだけで、到達可能性の状態が変化したときの応答を指定するためにSystemConfiguration使用できます。-setReachabilityStatusChangeBlock:

于 2012-02-13T05:03:42.497 に答える
28

これらは、AFNetworkoring クラスを追加した後にAFNetworking利用するために従わなければならない手順です-setReachabilityStatusChangeBlock:

  1. SystemConfiguration.frameworkプロジェクトに追加
  2. pchファイルに追加#import <SystemConfiguration/SystemConfiguration.h>
  3. このサブクラスに のサブクラスがあると仮定するとAFHTTPClient、init 関数に以下のコード行を追加します。
[self setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus ステータス) {
        NSLog(@"changed %d", status);
        //ここにあなたのコード
    }];
于 2012-07-23T11:56:47.077 に答える
2

「到達可能性」を使用して、デバイスがネットワークに接続されているかどうかを判断できる場合があります。これが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
}
于 2012-02-12T23:11:01.407 に答える
0

到達可能性を使用するのはどうですか?

接続を試みる前に、接続を試みる正当な理由があるかどうかを確認できます。

Apple Sample Project for Reachabilityは、初期ステータスを取得する方法を示しているようです。

于 2012-02-12T23:03:07.930 に答える