0
 ASIHTTPRequest *request = [[ASIHTTPRequest alloc]initWithURL:[NSURL URLWithString:url]];
request.requestHeaders = header;
request.requestMethod = @"GET";
request.tag = DBRequestTypeChannelCategory;
[request setDelegate:self];
[request setNumberOfTimesToRetryOnTimeout:2];
[request setDownloadCache:[ASIDownloadCache sharedCache]];
[request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
[request setCachePolicy:ASIFallbackToCacheIfLoadFailsCachePolicy];
[request setSecondsToCache:60*60*24*3];
[request startAsynchronous];

これは、http に関する私のコードであり、モデルを飛ばすように携帯電話をオンにした場合です。私はこれを得た

Error Domain=ASIHTTPRequestErrorDomain Code=1 "A connection failure occurred" UserInfo=0x1fd67bf0 {NSUnderlyingError=0x1fd66bf0 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error 2.)", NSLocalizedDescription=A connection failure occurred}
4

1 に答える 1

1

あなたが投稿したエラーは、クラッシュが接続障害によるものであることを意味します。これは、機内モードが有効になっている場合に意味があります. 失敗ハンドラーを設定することで、これを排除できるはずです。

    [request setFailedBlock:void^{
        //
    }];

または

    [request setDidFailSelector:@selector(requestWentWrong:)];

インターネットにアクセスせずにキャッシュされたデータにアクセスするには、以下をリクエストに追加するだけです。

    [request setCachePolicy:ASIFallbackToCacheIfLoadFailsCachePolicy];

これを機能させるには、ユーザーがアプリを使用しているときにキャッシュが削除されないように、キャッシュ ストレージが永続的に設定されていることを確認する必要があります。

    [request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
于 2012-10-25T09:08:02.113 に答える