2009-09-02 8 views
2

私はCoreDataを使用して、ユーザーがiPhoneのカメラから取得した画像データを保存します。時間の経過とともに、これらのオブジェクトによって消費されるメモリは増加し続けますが、メモリからそれらのオブジェクトをクリアする方法はわかりません。CoreDataのオブジェクトをメモリから削除するには?

これはどのように行う必要がありますか?

答えて

6

あなたはで保持または(あなたが保持するものに加えて)オブジェクトを保持しないようにmanagedObjectContextを伝えることができます。

[managedObjectContext setRetainsRegisteredObjects:YES]; 

が、これは何をするかの議論のためのhttp://developer.apple.com/documentation/Cocoa/Conceptual/CoreData/index.html?http://developer.apple.com/documentation/Cocoa/Conceptual/CoreData/Articles/cdRelationships.htmlを参照してください。

また、オブジェクトを自分自身で保持して漏らさないように注意する必要があります。そうしないと、効果がありません。

+0

-Wil

また、あなたはメモリからすべてのオブジェクトを拭いて、その文脈でやり直す[リセットNSManagedObjectContext]を使用することができます。最後に、NSManagedObjectContextのrefreshObject:mergeChanges:メソッドを使用して、指定された単一のエンティティのプロパティオブジェクトをクリアすることができます(プロパティをフォールトに変えます)。 – occulus

関連する問題