0

現在、CoreData から UITableViewCell のサムネイル画像を取得しています。これは最大 2k の png です。

実際には問題なく動作しており、ユーザーは速度の遅さに気付きませんでしたが、CoreData リクエストが多すぎないようにメカニズムを改善したいと考えています。

実際、セルは必要に応じてロードされます。これは問題ありませんが、重要なのは、CoreData への要求は、表示に渡される各セルに対して常に行われるということです。考えられる解決策は、テーブル ビューのスクロールが停止したときにのみサムネイルを読み込むことですが、この解決策では、セルを実際にリセットする prepareForReuse を実装しているため、セルは共通の共有イメージで表示されます。

それで、CoreDataイメージをメモリにキャッシュして取得する簡単な方法はありますか?

私の Objective-c の知識はまだ限られているため、考えられる最も簡単な解決策は NSIndexPath.row->UIImage 辞書 (私のテーブルにはセクションがありません) ですが、他のシンプルでエレガントな解決策を実装できるかどうかはわかりません。

4

1 に答える 1

0

ソリューションは非常にシンプルでエレガントに思えます。さまざまな理由から、辞書の代わりに NSCache を使用するように注意を向けることしかできません。自動削除はその1つであり、さまざまな削除ポリシー、制限などを設定することもできます(ロックのない別のスレッドからのアクセスはあなたのケースに合わないようです)。したがって、これにより、数行のコードだけを節約できます。

于 2012-11-27T17:05:14.467 に答える