2011-06-13 54 views
1

所以我注意到一些奇怪的行爲,當使用NSManagedObject的子類作爲我的控制器之一的屬性時。我知道這些類的實例是由核心數據管理的,不應該被視爲關於其生命週期的普通對象。NSManagedObject子類作爲屬性的最佳實踐

我的問題是,如果您有核心數據對象作爲另一個(非核心數據)類的屬性,最佳做法是什麼?

我發現,爲了得到我想要的行爲,我不得不保留核心數據對象時取出或生成,然後設置像這樣的屬性:

@property (nonatomic, assign) MBUser* userProfile; 

這是最好的做法還是有一些其他的方式來完成我想要的?

回答

1

我相信如果一個託管對象的保留計數爲0,那麼系統將會釋放,因此您必須保留您的對象以確保它不會被核心數據系統解除分配......我還沒有找到這個這樣寫在TXT,但我相信這裏的核心數據指南意味着它Link

+0

好吧,這與我所見。那麼,這是否意味着當我調用對象X上的保留時,這是NSManagedObject的一個子類,我還必須調用release? – jjm340 2011-06-13 01:55:13

+0

如果你想在釋放對象上下文之前讓系統釋放它,那麼你可以釋放它,但是我認爲當你釋放你的對象上下文時,所有的東西都會被釋放。 – Daniel 2011-06-13 02:07:19

+0

很酷,無論哪種方式我都會知道當我最終開始分析應用程序。 – jjm340 2011-06-13 16:43:14