0

單獨的NSManagedObjectContext需要回滾coredata更改用戶不行嗎?是一個單獨的NSManagedObjectContext需要回滾coredata更改用戶不行嗎?

我注意到在CoreDataBooks example它使用了一個單獨的NSManagedObjectContext。想問的是,這是否是處理這一需求的唯一真正方法,如果不是,那麼將採取什麼樣的方法。

的要求是:

  • 允許用戶開始修改到字段對象的頁面
  • 上,這可能包括假冒分離模式的意見,幫助他們設置這個數據
  • 要約OK或CANCEL重新進行修改或不修改
  • 作爲更改的一部分,您仍然繼續使用CoreData管理對象(即不創建單獨的一組對象/方法來處理此問題)
  • 如此,鑑於你想堅持使用現有的核心數據對象,然後支持OK和CANCEL更改,是通過單獨的第二個NSManagedObjectContext執行此操作的唯一方法?

摘自參考實例

創建一個新的書,一個AddViewController管理另外 的書,和附加控制器新的託管對象上下文保持書做出 變化離開應用程序的管理對象上下文,直到書被保存。重要提示:沒有必要爲此使用第二個上下文 。例如,您可以使用現有的 上下文,這可以簡化一些代碼 - 例如,在保存後您不需要 合併更改。但是,此實現可以幫助您演示一種可能有用的模式(您希望 保留一組單獨的編輯)。

回答

1

單獨創建一個單獨的NSManagedObjectContext是處理所描述情況的最簡單方法。如果您想在單獨的線程上進行更改,它也是唯一的方法。

請務必在保存期間使用-[NSManagedObjectContext mergeChangesFromContextDidSaveNotification:(NSNotification *)notification]以保持主NSManagedObjectContext正確同步。

相關問題