У меня возникли проблемы с кэшированием URL-адресов на диск. Я хочу, потому что загружаемые данные требуют перезагрузки, когда тег expires в его http-заголовке встречается, а не раньше. Кроме того, я хочу, чтобы iPod touch-пользователи могли загружать данные один раз в режиме онлайн, а затем использовать его в автономном режиме.iphone: NSURLCache на диске
я это делаю, который прекрасно работает для кэширования вещей в памяти, но терпит неудачу, когда перезапуска приложения:
NSURLRequest* menuRequest = [NSURLRequest requestWithURL:mensaURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval: 10];
NSCachedURLResponse* cachedMenuResponse = [[NSURLCache sharedURLCache] cachedResponseForRequest:menuRequest];
if (cachedMenuResponse) {
// received data is a member of that class to which the asynchronous
// download writes and which is then being used in updateDataFromDownload
// to retrieve my data structure from the download.
self.receivedData = [NSMutableData dataWithData:[cachedMenuResponse data]];
[self updateDataFromDownload];
NSLog(@"using data from cache");
} else {
NSLog(@"opening connection");
[NSURLConnection connectionWithRequest:menuRequest delegate:self];
}
документация говорит, что делает, или, по крайней мере, следует, что при предоставлении методов, чтобы установить емкость диска, используемую в кэше. – SmokeDispenser
Да, я знаю. Я все еще думаю, что это не поддерживается. Например, https://devforums.apple.com/message/182443#182443 и http://github.com/rs/SDURLCache. –
Спасибо за это. SDURLCache предлагает простой способ сделать именно то, что я хочу :) – SmokeDispenser