Web から画像をダウンロードするための画像ライブラリの作成を開始しました。一度、画像をダウンロードして画像ディクショナリに設定します (メモリの過剰使用を避けるために、このディクショナリ内の画像の数が特定のしきい値を超えないようにするため、必要に応じて画像を削除します)。その後、 のwriteToFile
方法でその画像をファイルに書き込みますNSData
。画像が要求されたとき、最初に辞書に存在するかどうか、存在しない場合はファイルがパスに存在するかどうかを確認します[[NSFileManager defaultManager] fileExistsAtPath: uniquePath]
. そこにない場合は、画像をダウンロードします。これはすべて、優先度の高いグローバル キューに設定された非同期キューで行われます。ただし、プロセス全体はまだ少し遅れているようです。グローバル キューで非同期にディスクの読み取りおよび書き込みメソッドを使用しても問題ありませんか? また、このような状況でディスクへのキャッシュは推奨されますか? メモリ不足の状態で、ディクショナリから画像をダンプするときにのみファイルの書き込みをコミットすると、速度を上げることができますか?
2 に答える
0
SDWebImage フレームワークではキャッシングが容易になります。デフォルトでキャッシングがサポートされます。
于 2013-02-25T11:30:11.613 に答える
0
コンテンツをキャッシュする最も簡単な方法は、Apple 独自の NSURLCache を使用することです。このリンクを読んでください: http://nshipster.com/nsurlcache/
基本的に、これを追加する必要がありますapplicationDidFinishLaunching...
let URLCache = NSURLCache(memoryCapacity: 4 * 1024 * 1024, diskCapacity: 20 * 1024 * 1024, diskPath: nil)
NSURLCache.setSharedURLCache(URLCache)
于 2016-05-07T08:10:09.990 に答える