【问题标题】:NSFetchedResultsController for same managed object (table)同一托管对象(表)的 NSFetchedResultsController
【发布时间】:2010-09-12 13:09:18
【问题描述】:

我想知道我是否可以这样做

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

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

然后在 VIEW 2 中使用 SAME 表(即 TABLEA)上的 NSFetchedResultsController 来检索没有表视图的数据并返回到 VIEW 1 以保存以前的托管对象??

【问题讨论】:

    标签: iphone core-data nsfetchedresultscontroller nsmanagedobjectcontext


    【解决方案1】:

    TABLEA 不是 SQL 表。核心数据不是 SQL。在这种情况下,TABLEA 只是获取结果控制器 (FRC) 的缓存文件。在控制器之间传递相同的缓存将无济于事,因为一旦您更改任何内容,缓存就会自行刷新。原则上您可以通过 FRC 本身,但这永远不会完成,因为它会变得混乱。

    托管对象实例附加到托管对象上下文,而不是获取或获取结果控制器。如果要在视图控制器之间传递托管对象,则传递对象本身。如果您想将上下文保存在不同的控制器中,那么您也可以传递上下文。提取不会进入它。

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

    【讨论】:

    • 感谢您的详细解释。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-10
      • 1970-01-01
      • 2012-09-04
      • 2011-06-28
      • 2018-09-01
      • 1970-01-01
      相关资源
      最近更新 更多