AFNetworking을 사용하여 JSON 데이터를로드하는 방식이 효과적입니다.AFNetworking에서 이전 캐시를 지우는 방법은 무엇입니까?
SessionManager *sessionManager = [SessionManager sharedClient];
[sessionManager setResponseSerializer:[AFJSONResponseSerializer serializer]];
[sessionManager setRequestSerializer:[AFJSONRequestSerializer serializer]];
[sessionManager GET:urlString
parameters:nil
success:^(NSURLSessionDataTask *task, id responseObject) {
self.navigationItem.titleView = nil;
self.data = [responseObject objectForKey:@"courses"];
self.title = responseObject[@"meta"][@"ref_title"];
[self.tableView reloadData];
}
failure:^(NSURLSessionDataTask *task, NSError *error) {
NSString *errorString = [NSString stringWithFormat:@"%@",
[error localizedDescription]];
[aiView stopAnimating];
}];
문제는 매번 데이터를로드하고 싶지 않다는 점입니다. 그래서 나는이 빠른 사용자 경험을 할 수 있습니다,하지만 지금은 문제가 데이터가 삭제되지 않습니다이다, 또는 그것이
sessionManager.requestSerializer.cachePolicy = NSURLRequestReturnCacheDataElseLoad;
사용? 따라서 사용자는 새로운 데이터가 있음을 알지 못할 수도 있습니다.
나는 응용 프로그램이로드 될 때 시작하는 순간 NSTimer에서 사용이 들어후 나는이 데이터가 5로드 된 경우에도 메소드를 호출 타이머와 같은 아주 나쁜 솔루션입니다 생각
[[NSURLCache sharedURLCache] removeAllCachedResponses];
호출 몇 초 전. 그래서 나는 더 좋은 것이 있는지 묻습니다.
여기에도 비슷한 질문이 있지만 이미지 캐시를 지우는 데 대한 것이므로 캐시의 나이는 없습니다. 가장 좋은 경우는 하루가 바뀔 때 캐시를 삭제할 수 있는지 여부입니다.
예 시도해 볼 때마다 서버에서 다시로드됩니다. – Pahnev
5 초 전에 캐시 된 데이터를 제거하지 않으려면 다음을 사용할 수 있습니다. (void) removeCachedResponseForRequest : (NSURLRequest *) request. 동일한 요청 인 경우 동일한 요청의 인스턴스가 두 번 이상있을 수 있습니다. – Kerstin