私はいくつかの同様の投稿を見つけましたが、それらは私がしていることに何の影響も与えていないようです。UIWebView
バンドル内のローカルコンテンツを表示するために使用しているものがあります。具体的には、docxファイルを表示しています。ユーザーがこのドキュメントを見ることはめったにありません。私のアプリはメモリが不足しているので、私がやりたいのはUIWebView
、ドキュメントをキャッシュできないようにすることです。もう1つの実行可能なオプションは、ユーザーがビューを離れたときにキャッシュをクリアすることです。ユーザーがビューに入るたびに最初からロードする必要があるので、まったく問題ありません。
私は次のようにドキュメントをロードします:
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];
また、Webビューのキャッシュポリシーを設定しようとしましたが、Webビューをリリースしたときにまだメモリが残っていたため、メモリを消費しているように見えました。再入力して再割り当てしたとき、同じメモリを使用していませんでした。
しかし、これは正しい方向ではないと思います。これらはすべて、Webページのキャッシュを停止する方法としてタグ付けされていますが、ローカルファイルには効果がないようです。これで他にどこに行けばいいのかよくわかりません。誰かがキャッシュを強制的にクリアする方法、またはそもそもキャッシュを防ぐ方法を知っているなら、私はいくつかの助けを大いに感謝します。