ググると「メモリ上にしか保存されない」という古い情報がよくヒットするのでメモしときます。
##ソース
参考:NSURLCache Uses a Disk-cache as of iOS5
NSURLCache というのは、UIWebViewで使用しているキャッシュオブジェクトの事です。
参考(情報がちょいと古い):Cocoaの日々: [iOS] UIWebView のキャッシュ調査
利用するとアプリ容量がどんどん肥大化してく問題が起きたので、iPhoneアプリの中身がどうなっていくか調べている過程で上の記事を見つけました。
##ほんとにディスク上に保存される?
実際試してみたところ、確かにUIWebViewを使用する度に、アプリの容量は増えます。
アプリを完全終了しても容量は減らないので、ディスクキャッシュしているのは間違いなさそうです。
具体的にどのファイルにキャッシュが保存されているかというと、~/Library/Caches/ にある、Cache.db です。
参考:(旧) Cocoaの日々: WebKit検証(32) - キャッシュの中身
ちなみに、デフォルトの上限は、メモリが4MBでディスクが20MBです。(NSURLCache.h参照)
まーこれくらいなら問題無さそう。
ディスクやメモリ上にあるキャッシュの容量/上限は、以下のメソッドで確認できますので気になる方はどうぞ。
[NSURLCache sharedURLCache] の
- currentDiskUsage,
- diskCapacity
- currentMemoryUsage
- memoryCapacity
##ディスク上に保存しないようにするには?
ディスク上にキャッシュを保存しないようにする方法は、以下の2つがあります。
- NSURLRequestのcachePolicyに、NSURLRequestReloadIgnoringLocalCacheDataを指定する
- 利用できる保存領域に0を設定する [[NSURLCache sharedURLCache] setDiskCapacity:0];
UIWebViewでWebページを表示する場合は、1の方法だとWebページ上の細かいファイルの取得全てにcachePolicyを適用させる方法が面倒だったので、2の方法が楽でおすすめです。
以上です!!