Ios 如何使tableViewController了解外部已更改的managedObjectContext?

Ios 如何使tableViewController了解外部已更改的managedObjectContext?,ios,objective-c,uitableview,core-data,Ios,Objective C,Uitableview,Core Data,在我正在开发的应用程序中,我有两个TableViewController,其中的表使用核心数据填充数据,还有两个ViewController,我可以在其中读取、添加、删除和更新这些信息。这一切都很好,只是TableViewController没有更新。我在考虑使用委托,以某种方式让那些TableView知道didChangeObject发生在另一个ViewController中,但我真的不知道如何做到这一点,我不确定这是正确的方法 这正是NSFetchedResultsController的设计

在我正在开发的应用程序中,我有两个TableViewController,其中的表使用核心数据填充数据,还有两个ViewController,我可以在其中读取、添加、删除和更新这些信息。这一切都很好,只是TableViewController没有更新。我在考虑使用委托,以某种方式让那些TableView知道didChangeObject发生在另一个ViewController中,但我真的不知道如何做到这一点,我不确定这是正确的方法

这正是NSFetchedResultsController的设计目的。您可以使用
NSFetchedResultsController
驱动表视图的数据,并将表视图控制器委托给
NSFetchedResultsController
,以接收数据更改时的更新。

这正是
NSFetchedResultsController
的设计目的。您可以使用
NSFetchedResultsController
驱动表视图的数据,并将表视图控制器委托给
NSFetchedResultsController
,以接收有关数据更改时间的更新。

我建议您使用
NSFetchedResultsController
作为Marcuspost。这样做很好使用tableview

如果不想使用它,可以使用通知

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(managedObjectDidChange:) name:NSManagedObjectContextDidSaveNotification object:nil];
然后合并更改

-(void)managedObjectDidChange:(NSNotification *)nofication{
[self.context performBlock:^{
    [self.context mergeChangesFromContextDidSaveNotification:nofication];
}];
}

我建议您使用
NSFetchedResultsController
作为Marcuspost。使用tableview很好

如果不想使用它,可以使用通知

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(managedObjectDidChange:) name:NSManagedObjectContextDidSaveNotification object:nil];
然后合并更改

-(void)managedObjectDidChange:(NSNotification *)nofication{
[self.context performBlock:^{
    [self.context mergeChangesFromContextDidSaveNotification:nofication];
}];
}