Я использую NSURLRequest с CachePolicy для загрузки plist в NSData. Когда я изменяю содержимое своего plist, мое приложение игнорирует это и все еще представляет содержимое, которое кэшируется. Как долго сохраняется кеш? Если да, то есть возможность сказать, как долго сохраняются данные кэша? Есть ли способ проверить NSURLRequest, если данные на сервере новее, чем кеш, загружают данные с сервера или, если они равны кешу, используют кеш?Политика кэширования NSURLRequest
5
A
ответ
2
Обратите внимание на контроль кеширования ответов в URLLoadingSystem docs.
Вы можете добавить свои собственные даты в методах делегата
-(NSCachedURLResponse *)connection:(NSURLConnection *)connection
willCacheResponse:(NSCachedURLResponse *)cachedResponse
Гораздо более простой системой кэширования является ASIHTTPRequest. Я рекомендую использовать эту систему загрузки URL.
Из яблока документы:
Пример в листинге 6 предотвращает кэширование HTTPS ответов. Он также добавляет текущую дату в словарь пользовательской информации для ответов , которые кэшируются.
-(NSCachedURLResponse *)connection:(NSURLConnection *)connection
willCacheResponse:(NSCachedURLResponse *)cachedResponse
{
NSCachedURLResponse *newCachedResponse = cachedResponse;
if ([[[[cachedResponse response] URL] scheme] isEqual:@"https"]) {
newCachedResponse = nil;
} else {
NSDictionary *newUserInfo;
newUserInfo = [NSDictionary dictionaryWithObject:[NSCalendarDate date]
forKey:@"Cached Date"];
newCachedResponse = [[[NSCachedURLResponse alloc]
initWithResponse:[cachedResponse response]
data:[cachedResponse data]
userInfo:newUserInfo
storagePolicy:[cachedResponse storagePolicy]]
autorelease];
}
return newCachedResponse;
}
Thanks.I установить его теперь к нулю. Но как сделать кеш в течение определенного времени или проверить, имеются ли новые данные с сервера? – halloway4b
Я обновил мой ответ –
IOS 6.1 SDK документации говорится следующее: соединения: willCacheResponse: Направлены до соединения хранит в кэше ответа в кэше, чтобы дать делегату возможность изменить его. (требуется) (Доступно в iOS 2.0 через iOS 4.3.) – cynistersix