0

私のアプリは、私が管理しているオンラインの MySQL データベースから約 50 の画像をダウンロードする必要があります。(たとえば)を使用してキャッシュされる方法を制御できることはわかっています。

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:aURL] 
                                         cachePolicy:NSURLRequestReturnCacheDataElseLoad 
                                     timeoutInterval:30.0];


しかし: 1)このキャッシュポリシーを使用すると、最初にダウンロードされた後、画像がユーザーのデバイスに永久
に残る ことを意味しますか?または、 2)アプリの Documents フォルダーに自分で手動で保存して (おそらく、オンラインでミラーリングするためにデータベースを同時に書き込むことも)、それらの永続性を確保することをお勧めします-そうすれば、そこからそれらを読み込むことができます (デバイスのドキュメントフォルダー) その時点から、アプリの後続のすべての実行で? 基本的には、最初のダウンロード後にユーザーのデバイスに画像を保持するための最良の方法についての推奨事項が必要なだけです。そのため、ユーザーは常に何かを持っています


接続の問題が原因で、オンライン データベースに追加された新しい画像を取得できない場合に備えて確認してください。

あらゆるアドバイスをいただければ幸いです。

4

1 に答える 1

2

NSURLCache は、ダウンロードされたリクエストにメモリとディスク キャッシュを使用します。iOS 5 より前に、SDURLCache などの個別のライブラリにつながる問題があったことを覚えていますが、それらはもう必要ないと思います。

ディスク キャッシュがあっても、デバイスの空き容量が不足すると、iOS によってキャッシュがクリアされる場合があります。これが発生したくない場合は、画像を Documents フォルダーに自分で保存できます... しかし、この状況が Caches ディレクトリの目的です。画像をダウンロードすると、デバイスの容量が不足しない限り画像は保持されます。容量が不足した場合、画像はクリアされ、必要に応じて再ダウンロードされます。もし私がこのアプリのユーザーだったら、ネットワークから簡単に復元できるもののために永久にディスク領域を占有するよりも、その動作を好むでしょう。

于 2012-07-16T03:33:35.053 に答える