在我正在开发的应用程序中,我有2个 tableViewControllers ,其中表格使用Core Data和2 ViewControllers 填充数据,我可以在其中阅读,添加,删除并更新该信息。除了 tableViewControllers 没有得到更新这一事实外,一切都很棒。我正在考虑使用委托以某种方式使那些 tableViews 知道 didChangeObject 发生在另一个 ViewController 中,但我真的不知道该怎么做而且我不确定这是否正确。
答案 0 :(得分:4)
这正是NSFetchedResultsController
的设计目标。您使用NSFetchedResultsController
来驱动表视图的数据,并使表视图控制器成为NSFetchedResultsController
的委托,以接收有关数据更改时间的更新。
答案 1 :(得分:3)
我建议您使用NSFetchedResultsController
作为 Marcus 帖子。使用tableview很方便。
如果您不想使用它,可以使用通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(managedObjectDidChange:) name:NSManagedObjectContextDidSaveNotification object:nil];
然后合并更改
-(void)managedObjectDidChange:(NSNotification *)nofication{
[self.context performBlock:^{
[self.context mergeChangesFromContextDidSaveNotification:nofication];
}];
}