Apple のドキュメントには別の方法が示されていますが、NSURLCacheiOS ではディスク (フラッシュ) キャッシュはまったく行われません。サブクラスNSURLCache化して、ディスクを使用するようにフェッチおよびストア操作の動作を変更できますが (実際に行っているようSDURLCacheに)、キャッシュの使用方法と実装方法に関する以下の厳しい制限により、これは期待どおりに機能しません。 :
NSURLConnectionstoreCachedResponse:forRequest:約 50KB (正確には >= 52428 バイト) を超えるファイルは必要ありません。NSURLCacheこれにより、キャッシュに到達することさえできないため、サブクラス化 (200KB の画像) は無意味になります。その結果、上のレベルでキャッシングを手動で追加する必要がありますNSURLConnection。- NSURLCache のビルトインを
storeCachedResponse:forRequest:手動で呼び出した場合でも、応答が約 180KB 未満の場合にのみメモリに格納されます。storeCachedResponse を手動で呼び出してこれをテストし、currentMemoryUsage約 180KB を超えるデータ長の前後で変更がないことを確認しました。そのため、独自の LRU メモリ キャッシュも作成する必要があります。
他の誰かがこれらの問題に気づきましたか? または、私が見逃しているものがありますか?
参考までに、シミュレーターと iPad 2 で iOS 4.3 を実行しています。