ASIHTTPRequest Cache機能を使用してキャッシュ結果を取得できません。私はドキュメンテーションの指示に従った。私がインターネットにアクセスすると、以下は完全に機能します。その時点で、飛行機モードをオンにして、マルチタスクからアプリを終了します。私はこれを行うとき、私はrequestFinishedへの非同期呼び出しを取得しません。私はキャッシュポリシーの束を試しましたが、それはそれを行うように見えません。誰にもアイデアはありますか?ASIHTTPRequest Caching Not working
目的:インターネットに接続されていない状態でキャッシュされたJSON応答を取得できるようにする(インターネットから一度正常に読み込まれた後)。
- (void)viewDidLoad
{
if (!networkQueue) {
networkQueue = [[ASINetworkQueue alloc] init];
}
[networkQueue reset];
[networkQueue setRequestDidFinishSelector:@selector(imageFetchComplete:)];
[networkQueue setRequestDidFailSelector:@selector(imageFetchFailed:)];
[networkQueue setShowAccurateProgress:true];
[networkQueue setDelegate:self];
//Turn on default caching
[ASIHTTPRequest setDefaultCache:[ASIDownloadCache sharedCache]];
[self loadData];
[super viewDidLoad];
}
-(IBAction)loadData
{
NSURL *url = [NSURL URLWithString:@"http://SOME_JSON_URL"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
[request startAsynchronous];
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
if ([request didUseCachedResponse])
{
NSLog(@"Did use cache!");
}
NSString *responseString = [request responseString];
NSLog(@"%@", responseString);
}
@JiaYow:それは判明している私は、明示的に有効期限[要求setSecondsToCache:60 * 60 * 24 * 30]を設定している場合、それを働くありがとう。 – Ryan