NSCache の自動削除ポリシーにはどのようなものがありますか? Apple のドキュメントにはそれらについて言及されていませんが、NSCache がメモリ警告に応答しないことを実験的に発見しました。
質問する
7175 次
2 に答える
7
NSCache
できる限りブラックボックスとして扱うのが最善です。
キャッシングとパージ可能なメモリから(強調鉱山):
アイテムをキャッシュに追加するときに、各キーと値のペアに関連付けるコスト値を指定できます。メソッドを呼び出して
setTotalCostLimit:
、キャッシュされたすべてのオブジェクトのコストの合計の最大値を設定します。totalCost
したがって、 をより上にプッシュするオブジェクトが追加されるtotalCostLimit
と、キャッシュはそのオブジェクトの一部を自動的に追い出して、しきい値より下に戻すことができます。このエビクション プロセスは保証されていないため、cost
値を操作して特定の動作を実現しようとすると、キャッシュのパフォーマンスに悪影響を及ぼす可能性があります。何も役に立たない場合は を0
渡すか、コストを渡す必要のないメソッドを使用します。cost
setObject:forKey:
注: カウント制限と総コスト制限は厳密には適用されません。つまり、キャッシュが制限の 1 つを超えると、キャッシュの実装の詳細に応じて、一部のオブジェクトがすぐに削除されるか、後で削除されるか、まったく削除されない可能性があります。
于 2012-06-02T00:44:37.353 に答える