2011-10-18 6 views
1

iOSアプリケーションにNSCacheを使用しています。私はそれが自分の記憶を扱うことを知っていますが、私はそれを手作業でパージしたいと思います。 removeAllObjectsにそれを伝えると、私のメモリ使用量はInstruments Allocationsには表示されません。NSCacheの使用:メモリを消去または削除しないでください。

これが起こる別の方法がありますか、それが私の考え方を記憶していませんか?

答えて

0

NSCacheは、追加するオブジェクトを保持します。

オブジェクトをキャッシュに追加して解放しないと、保持カウント2になることはありますか?ポストされたコードでその動作を再現する小さなスニペットに絞って、それを狭めるのに役立ちます。ドキュメント毎の

キーと値のペアがキャッシュ内にある間、ガベージコレクションが有効である場合、キャッシュはそれに強い の参照を保持します。メモリ管理の コードのには、の項目が保持されます。

また、ここでは、NSCacheと割り当てを使用したビデオを示します。この例では、メモリ警告の下でAllObjectsを削除できます。 ...

http://speirs.org/blog/2010/6/30/using-instruments-to-learn-about-nscache.html

+0

おかげで、彼らはメモリ警告をシミュレートし、それが動作するはずですので、メモリフットプリントを削減しません。私はメモリリークがあるのを見ていないので、それは2の保持カウントを持っているとは思わない。私は小さな例を試し、ビデオを見てみましょう。 –

+0

OK - コードを絞り込んで投稿することができれば、それは良いことです... – bryanmac

関連する問題