Iphone 同一托管对象(表)的NSFetchedResultsController

Iphone 同一托管对象(表)的NSFetchedResultsController,iphone,core-data,nsfetchedresultscontroller,nsmanagedobjectcontext,Iphone,Core Data,Nsfetchedresultscontroller,Nsmanagedobjectcontext,我想知道我是否能做到这一点 视图1:在TABLEA上使用NSFetchedResultsController检索数据,在表视图中显示并采取措施保存数据 NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:referringObject section

我想知道我是否能做到这一点

视图1:在TABLEA上使用NSFetchedResultsController检索数据,在表视图中显示并采取措施保存数据

    NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:referringObject sectionNameKeyPath:nil cacheName:@"TABLEA"];

然后在视图2中,在同一个表(即TABLEA)上使用NSFetchedResultsController检索不带表视图的数据,并返回视图1保存以前的托管对象???

如果您使用相同的托管对象上下文,它们将返回相同的托管对象。

TABLEA不是SQL表。核心数据不是SQL。在本例中,TABLEA只是获取结果控制器(FRC)的缓存文件。在控制器之间传递相同的缓存不会起任何作用,因为一旦您更改了任何内容,缓存仍将刷新自身。原则上,你可以通过FRC本身,但这是永远不会做到的,因为它会变得混乱

托管对象实例附加到托管对象上下文,而不是附加到回迁或回迁结果控制器。如果要在视图控制器之间传递托管对象,请传递对象本身。如果要将上下文保存在不同的控制器中,那么也要传递上下文。回迁没有进入它


fetch/FRC通常特定于特定的视图控制器,因为每个视图控制器都需要以特定的排序顺序显示特定的数据子集,因此每个视图控制器都需要自定义自己的fetch

谢谢你的详细解释。