Я нашел несколько похожих сообщений, но они, похоже, не имеют никакого отношения к тому, что я делаю. У меня есть UIWebView
, который я использую для отображения локального контента в своем пакете. В частности, я показываю файл docx. Пользователь редко должен просматривать этот документ, а моему приложению не хватает памяти, поэтому я хочу предотвратить кэширование документа UIWebView
. Другой жизнеспособный вариант — очищать кеш, когда пользователь покидает представление. Я полностью согласен с необходимостью загружать его с нуля каждый раз, когда пользователь входит в представление.
Я загружаю документ так:
NSString * path = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"Intro text"] ofType:@"docx"];
NSURL * url = [NSURL fileURLWithPath:path];
request = [NSURLRequest requestWithURL:url];
doc_view_rect = CGRectMake(5,105,self.view.frame.size.width,self.view.frame.size.height);
doc_viewer = [[UIWebView alloc] initWithFrame:doc_view_rect];
[doc_viewer loadRequest:request];
В моих попытках остановить кеширование я пробовал:
[[NSURLCache sharedURLCache] setMemoryCapacity:0];
[[NSURLCache sharedURLCache] setDiskCapacity:0];
И:
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil];
[NSURLCache setSharedURLCache:sharedCache];
[sharedCache release];
sharedCache = nil;
И:
if(request) {
[[NSURLCache sharedURLCache] removeCachedResponseForRequest:request];
}
[[NSURLCache sharedURLCache] removeAllCachedResponses];
Я также попытался установить политику кэширования веб-представлений, но это, похоже, просто съело память, так как, когда я выпустил веб-просмотр, память все еще оставалась позади. Когда я снова вошел и перераспределил, он не использовал ту же память.
Хотя я не думаю, что это правильное направление. Все они были помечены как способы предотвращения кэширования веб-страниц, но, похоже, они не действуют на локальные файлы. Я действительно не уверен, куда еще пойти с этим. Если кто-нибудь знает, как принудительно очистить кеш или вообще предотвратить кеширование, я был бы очень признателен за помощь.