9

NSCache の自動削除ポリシーにはどのようなものがありますか? Apple のドキュメントにはそれらについて言及されていませんが、NSCache がメモリ警告に応答しないことを実験的に発見しました。

4

2 に答える 2

7

NSCacheできる限りブラックボックスとして扱うのが最善です。

キャッシングとパージ可能なメモリから(強調鉱山):

アイテムをキャッシュに追加するときに、各キーと値のペアに関連付けるコスト値を指定できます。メソッドを呼び出してsetTotalCostLimit:、キャッシュされたすべてのオブジェクトのコストの合計の最大値を設定します。totalCostしたがって、 をより上にプッシュするオブジェクトが追加されるtotalCostLimitと、キャッシュはそのオブジェクトの一部を自動的に追い出して、しきい値より下に戻すことができます。このエビクション プロセスは保証されていないため、cost値を操作して特定の動作を実現しようとすると、キャッシュのパフォーマンスに悪影響を及ぼす可能性があります。何も役に立たない場合は を0渡すか、コストを渡す必要のないメソッドを使用します。costsetObject:forKey:

注: カウント制限と総コスト制限は厳密には適用されません。つまり、キャッシュが制限の 1 つを超えると、キャッシュの実装の詳細に応じて、一部のオブジェクトがすぐに削除されるか、後で削除されるか、まったく削除されない可能性があります。

于 2012-06-02T00:44:37.353 に答える