내 앱이 JSON 응답을 웹 서버에서 저장하고 너무 많이 요청하지 않도록 NSURLCache를 사용하려고합니다.NSURLCache가 사용되지 않습니다.
요청의 응답 헤더에 Cache-Control:Max-Age=604800
을 추가했습니다.
는 다음 코드 내 애플 리케이션의 AppDelegate.m 파일을 추가 한 :
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//set up the URL cache
NSURLCache *URLCache = [[NSURLCache alloc] initWithMemoryCapacity:4 * 1024 * 1024
diskCapacity:20 * 1024 * 1024
diskPath:nil];
[NSURLCache setSharedURLCache:URLCache];
}
그리고 코드 내 요청은 다음과 같습니다 있기 때문에, 노력하고 있습니다
이NSString *myURLString = [NSString stringWithFormat:@"http://domain.com/api/?location=%@,%@&date=%@&method=%@", latitude, longitude, curDate, methodString];
NSLog(@"%@", myURLString);
NSURL *url = [NSURL URLWithString:myURLString];
NSData *jsonData = [NSData dataWithContentsOfURL:url];
나는이 생각하지 않습니다 계기 네트워크 프로필로 실행할 때마다보기가로드 될 때마다 네트워크 요청에 스파이크가 표시되고 응용 프로그램을로드하면 아무런 데이터도로드되지 않는 평면 모드로 전환됩니다 (캐시를 사용할 것으로 의심되는 반면).
캐시가 작성/사용되지 않았다는 증거입니까? 그렇다면 누구나 왜 그런 아이디어가 없습니까? 그리고 증명이 아니라면 캐싱을 더 잘 테스트 할 수있는 방법을 아는 사람이 있습니까?
감사합니다.
'dataWithContentsOfURL :'은 원격 URL에 사용하기위한 것이 아닙니다. 이것이 문제의 원인 중 하나 일 수 있습니다. NSURLConnection을 사용하여 분석을 반복하는 것이 좋습니다. – CouchDeveloper
아, 그건 맞는 것 같습니다. 나는 'NSURLConnection'으로 바꿀 것입니다. 감사. – samiles
repost of http://stackoverflow.com/questions/17629214/how-to-test-check-use-of-nsurlcache – vikingosegundo