一直瀏覽類似這篇文章,但沒有人回答我的問題。NSFetchedResultsController委託方法不會觸發mergeChangesFromContextDidSaveNotification
像CoreDataBooks,我使用一個單獨的MOC添加和編輯的項目,並觀察適當的通知,像這樣:
- (void)addControllerContextDidSave:(NSNotification*)saveNotification {
NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
// Merging changes causes the fetched results controller to update its results
[context mergeChangesFromContextDidSaveNotification:saveNotification];
NSLog(@"merging changes in rootview");
}
當我做了保存,它的正確觀察。調試通知顯示正確的上下文,並調試上下文顯示剛添加的項目。日誌消息也打印得很好。但沒有任何反應。沒有一個NSFetchedResultsController的委託方法觸發,也沒有更新表視圖。
我試過沒有緩存或清除它。我試過reloadData
在tableView上,但沒有。 當我退出應用程序並重新啓動時,它顯示正常。
UPDATE: 通知確實包含正確的上下文爲object
,其中包含了正確的項目,但userInfo
哈希有什麼也沒有:
userInfo = {
inserted = "{(\n)}";
updated = "{(\n)}";
}
所以看起來通知未有任何變化,儘管有更改的項目正確的上下文....嗯。