ASIHTTPRequest Cache 기능을 사용하여 캐싱 된 결과가 표시되지 않습니다. 나는 문서에서 지시를 따랐다. 인터넷에 접속하면 다음과 같이 완벽하게 작동합니다. 이 시점에서 비행기 모드를 켜고 멀티 태스킹에서 앱을 종료합니다. 이 작업을 수행 할 때 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