1

ユーザーがメニューを介してView Controllerを切り替えると、十分なメモリがあればそれらをキャッシュしたいと思います。そのために、NSCacheたくさん収納したいUIViewControllers

ただし、NSCache現在のオブジェクトが現在使用されており、削除しないでください。たとえば、アプリを実行し、いくつかのビュー コントローラーを読み込んでアプリを終了すると、NSCacheすべてが自動的に削除されますviewControllers(これは理にかなっています - アプリはフォアグラウンドに長く留まることができます)。ただし、現在表示されているView Controllerも削除されますが、これは私が望んでいたものではありません。

特定のオブジェクトを削除不可としてマークするにはどうすればよいですか?

4

2 に答える 2

2

あなたはこのようにすることができます:

アプリケーションがバックグラウンドになると、キャッシュは削除されます。したがって、アプリケーションがバックグラウンドに移行すると、データがキャッシュから {NSUserDefaults} に保存され、アプリケーションが didBecomeActive でキャッシュに値が再割り当てされます。

于 2013-04-09T13:14:10.793 に答える
0

キャッシュは連想メモリです。キャッシュされたアイテムをいつ削除するかを強く決めることはできません。代わりに、キャッシュポリシーを変更できます。

ドキュメントから:

デフォルトでは、キャッシュ内のNSDiscardableContentオブジェクトは、コンテンツが破棄されると自動的にキャッシュから削除されますが、この自動削除ポリシーは変更できます。NSDiscardableContentオブジェクトがキャッシュに入れられた場合、キャッシュはその削除時にそのオブジェクトに対してdiscardContentIfPossibleを呼び出します。

于 2013-01-10T16:27:45.503 に答える