2017-08-24 31 views
0

我有一個現有的iOS項目,我試圖更改爲使用CoreData而不是Keyed Archiving。在我現有的項目中,我經常在用戶關閉模態視圖時創建對象。然後我對這個對象做了一些驗證,如果一切順利,我就繼續存儲它。但是,如果對象被確定爲無效,我只需將其扔掉並向用戶發出驗證消息。CoreData - 製作可能或不可能存儲的對象

當我開始使用核心數據時,我對這種模式感到緊張。我不想在我的數據庫中創建「臨時」對象,只是爲了轉身和刪除它們。所以相反,我創建的對象沒有分配給NSManagedObjectContext。然後,當我確定事情是有效的,然後才分配給上下文。

最後是問題:這是一種有效的方法嗎?事情通常是這樣做的嗎?我很擔心,因爲我對託管對象的使用變得越來越複雜,實體之間的關係越來越密切,我可能會後悔這種選擇。我是否不必要地讓自己更難?

回答

1

執行此操作的常用方法是創建主環境的子項目。您可以在該上下文中創建對象,並且如果要將更改保存到主上下文,然後保存主上下文。如果您不想保留更改,只需丟棄子上下文。

+0

謝謝 - 我甚至不知道這是一種可能性。基於你的迴應,我發現這個教程:https://www.raywenderlich.com/145877/core-data-tutorial-multiple-managed-object-contexts-2謝謝! –