Я пытаюсь использовать NSURLCache, чтобы мое приложение сохраняло ответы JSON с веб-сервера и не запрашивало его столько.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 http://stackoverflow.com/questions/17629214/how-to-test-check-use-of-nsurlcache – vikingosegundo