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