在我的iOS應用程序中,我試圖將核心數據與Web後端同步。我想爲同步使用單獨的後臺託管對象上下文,以便在同步正在處理時,可以使我的主要上下文自由地接受來自ui的更改。這兩個上下文都是我的寫入磁盤上下文的子項,根據此博文http://www.cocoanetics.com/2012/07/multi-context-coredata/。合併多個子項管理的對象上下文
我的問題是,如何在保存到磁盤之前合併兩個子上下文?
如果我訂閱contextDidSaveNotifications,我可以用
[mainContext mergeChangesFromContextDidSaveNotification:syncFinishedNotification];
,但根據文檔合併的背景下... 「這個方法刷新其已在其他情況下被更新的對象,故障任何新插入的對象,並在已被刪除的對象上調用deleteObject ::「。
我不想刷新更新的對象並丟失對mainContext所做的更改,而是合併這兩個更改集。
我是新來的多上下文核心數據,所以我可能會想到這個錯誤的方式。
任何想法?
謝謝,這正是我所尋找的。看了一會兒之後,似乎我甚至不需要使用mergeChangesFromContextDidSaveNotification。如果我保存子上下文,所有更改將使用我指定的NSMergePolicy合併到父項中。這是一個正確的理解? – adamF
@adamF雖然沒有任何理由/記錄,但在經過堆棧溢出的討論之後,我也覺得你的理解是正確的。 「甚至不需要使用mergeChangesFromContextDidSaveNotification。如果我保存了子上下文,所有的更改都將使用NSMergePolicy合併到父項中,我指定了」你確認我們的假設是否正確? – Dinakar