快速提问。我有一个核心数据堆栈(子/父)上下文。孩子获取 json objs 并解析它们,然后将它们保存到父级,当计数为 20 时,父级获取主线程并保存......一切正常。然而,在我的表格视图中,我最终不得不每次都重新获取整个数据库!我的 fetchcount 和 duration 是巨大的,任何人都可以给我一些想法吗?我已经全力以赴提前感谢!也出于某种原因 [[[SharedStore ShareStoreManager]getMasterContext] reset] 工作正常......只是没有 mergeChangesFromContext!
NSNotificationCenter *mergeNotification = [NSNotificationCenter defaultCenter];
[mergeNotification addObserver:self
selector:@selector(mergeChanges:)
name:NSManagedObjectContextDidSaveNotification
object:[[SharedStore ShareStoreManager]getMasterContext]]
-(void)mergeChanges:(NSNotification *)notification {
[[[SharedStore ShareStoreManager]getMasterContext] mergeChangesFromContextDidSaveNotification:notification];
[self.tableView layoutIfNeeded];
[self.tableView reloadData];
}
编辑:我什至进入了上下文对象,看到插入的项目没有被合并,所以我进去强制它但仍然没有运气帮助!!!
for (User *user in [[notification.userInfo objectForKey:@"inserted"] allObjects]) {
[[[SharedStore ShareStoreManager]getMasterContext] refreshObject:user mergeChanges:YES];
}
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];
}