画像を含むドキュメント ( Microsoft Word docxファイルなど) をロードする場合、UIWebView はキャッシュ ポリシーに関係なく、メモリ警告を受け取ると常に画像をキャッシュします。
次に、サンプル コード スニペットを示します。
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:1024 * 1024
diskCapacity:0
diskPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"URLCache"]];
[NSURLCache setSharedURLCache:sharedCache];
NSURLRequest* req = [NSURLRequest requestWithURL:
[NSURL URLWithString:@"http://www.its.swinburne.edu.au/about/projects/templates/TechnicalSpecificationTemplatev1.1-[ProjectName]-[ver]-[YYYYMMDD].docx"]
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval:10];
このような状況でメモリ警告が発生すると、アプリのtmpディレクトリに新しいフォルダーが作成され、通常はDiskImageCache-random_suffixという名前が付けられ、開いているドキュメント内のすべての画像がここに保存されます。
UIWebViewが新しいリクエストをロードした後、私が呼び出すと
[sharedCache removeAllCachedResponses];
これらの一時的なイメージは削除されます。
画像のキャッシュを防ぐ唯一の方法は、呼び出すことです
[NSClassFromString(@"WebCache") performSelector:@selector(setDisabled:) withObject:[NSNumber numberWithBool:YES]];
ただし、これはプライベート API を使用することを意味します。
これを達成するための「Appleフレンドリー」な方法はありますか?