2013-12-07 71 views
0

我有1父母2孩子moc的情況。 其中1個孩子是moc的主界面,另一個是雲中同步更改的專用隊列。孩子MOC取得最近的變化

我遇到了私有云同步子mod保存更改的情況,父母可以看到更改,但其他界面子項moc不會。

我有一個名爲Team的實體,它具有一個名爲TeamMembers的多對多關係字段。在專用隊列上保存後,我在父moc上獲取團隊實體並正確獲取所有更改。 之後,我獲取接口的子moc並沒有得到改變。 如果我創建另一個孩子moc,我確實得到了更改。

任何想法?

回答

1

我遇到了同樣的問題,因爲似乎接口上下文中的任何緩存對象都不會自動由父上下文更新。爲了解決這個問題,我說這樣的觀察員NSManagedObjectContextDidSaveNotification:

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(contextDidSave:) 
              name:NSManagedObjectContextDidSaveNotification 
              object:parentContext]; 

併合並保存到父上下文爲手動默認情況下的變化:

- (void)contextDidSave:(NSNotification *)notification { 
    SEL selector = @selector(mergeChangesFromContextDidSaveNotification:); 
    [interfaceContext performSelectorOnMainThread:selector withObject:notification waitUntilDone:YES]; 
} 

這似乎是標準的解決方案從我看到的這個問題(即Core Data merge two Managed Object Context

+0

非常好的建議,我相信這可能是原因。我會去的 –