0
我沒有使用ASIHTTPRequest緩存功能獲得緩存結果。我遵循文檔的指示。當我有互聯網接入時,下面的作品完美無缺。此時,我將打開飛行模式並關閉多任務應用程序。當我這樣做時,我不會異步調用requestFinished。我嘗試了一堆緩存策略,但似乎沒有這樣做。有沒有人有任何想法?ASIHTTPRequest緩存不起作用
目標:能夠在沒有互聯網連接的情況下獲得緩存的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 2012-03-01 14:27:29