2013-12-08 39 views
0

最近,我用Core Data開發了一個應用程序。考慮到核心數據的併發性,我使用基本爲this great article的父/子MOC模式。是否需要手動清理子項管理的對象上下文?

但是,仍然存在一個問題---孩子MOC是否需要在保存後手動清理?即childContext = nil; 關於父母/孩子MOC模式的文檔較少。

有人能幫我一下嗎?非常感謝。

+0

「乾淨」是什麼意思? –

+0

@AbhiBeckert我對我不清楚的描述表示歉意。請閱讀我的更新。 – ShengHuaWu

回答

1

是的,只要您完成對子環境的處理,就應該刪除它。

如果你有一個強/保留@property指向子上下文,你應該將它設置爲零,一旦你不再需要它了。

如果您沒有任何強/保留屬性,那麼ARC會在您使用childContext的最後一行代碼之後立即插入一行代碼以釋放子上下文。

如果ARC被禁用,則應該在應用下次空閒時自動釋放。

所以基本上,你不應該需要手動刪除它。但在某些情況下,您必須手動執行此操作。你不會找到任何關於這個的託管對象特定文檔,它是objective-c中的標準內存管理,只有在其行爲不同時纔會被記錄。

+0

所以方法「setParentContext:」不會創建一個從父上下文到子上下文的強(保留)指針? – ShengHuaWu

+0

它會創建一個強有力的指針(或者弱指針,似乎沒有記錄)從孩子到父母,而不是從父母到孩子。除非另有記錄,無論哪個對象的財產設置,這是將「擁有」另一個。因此,在這種情況下,儘管有這個名字,但是從內存管理的角度來看,孩子「擁有」父母。理論上,家長甚至不應該知道孩子存在,不應該以任何方式觸及孩子。 –

+0

感謝分享! – ShengHuaWu

相關問題