【问题标题】:NSFetchResultController: Fill TableView with fetched entity and its related entityNSFetchedResultsController:用获取的实体及其相关实体填充 TableView
【发布时间】:2013-03-22 18:24:18
【问题描述】:

我有 2 个实体。一个描述 TableView 的部分(一个月,它的名称等)。这个实体与另一个实体的一对多关系相关,另一个实体应该描述 TableView 的行。

我有点困惑如何通过 NSFetchedResultController 获取这些实体。就我现在而言,我当时只能获取一种关系。那么我应该找哪一个来填满表格呢?

【问题讨论】:

    标签: iphone ios uitableview core-data nsfetchedresultscontroller


    【解决方案1】:

    如果您使用NSFetchedResultsController,则获取要在表格视图中显示的对象。

    要获取节,您可以使用NSFetchedResultsControllersectionNameKeyPath 属性来指示如何从获取的对象之一中查找节名。这个关键路径是您可以通过valueForKeyPath: 传递给获取的对象之一以获取部分名称的内容。在您的情况下,它需要遍历一个关系回到月份实体(或任何它实际上是)来获得它的名字。例如,如果关系称为 month 并且 Month 实体具有 name 属性,则在创建获取的结果控制器时,您将传递类似 @"month.name" 的内容作为 sectionNameKeyPath 参数。

    【讨论】:

    • 不确定我是否明白。我的实体是 Month 实体和 Entry 实体。 Month 实体与 Entry 实体相关,该实体应填充 TableView 的行。 Month 实体应填充部分标题。我应该更改我的对象模型还是可以像我打算做的那样使用它...?
    • 您的 Entry 实体是否与 Month 有关系?如果不是,那真的,真的应该。如果它确实与 Month 有关系,则使用该关系名称作为键路径的一部分。
    • 有回溯关系。所以我应该从字面上获取入口实体?但是我不确定如何将实体分类。好的,我可以用 sectionNamekEyPath 来做吗?
    • 是的,就像我说的,您应该获取要在表格中显示的对象。 NSFetchedResultsController 将处理找出你需要哪些部分,如果你告诉它使用什么关键路径。
    【解决方案2】:

    您还可以使用出色的 Sensible TableView 框架来自动获取 Core Data 对象并将它们显示在表格视图中。该框架还将检测实体是否有任何关系,并会自动管理它们之间的详细视图控制器。

    【讨论】:

      猜你喜欢
      • 2016-10-16
      • 2014-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多