CoreData:关系的排序和部分

Posted

技术标签:

【中文标题】CoreData:关系的排序和部分【英文标题】:CoreData: Sort and Section on Relationships 【发布时间】:2010-03-18 04:45:10 【问题描述】:

我有两个关于使用 Core Data 的问题。以Employee and Department的典型案例为例。 Employee 实体与 Department 具有一对一关系字段“deparment”,而 Department 实体与 Employee 实体具有一对多关系“employee”。

我想在 TableView 的部门名称部分中显示所有员工。我认为 NSFetchedResultsController 应该使用 Employee 作为实体。我不确定如何使用部门名称作为排序标准,因为它位于员工的关系字段部门名称中。您可以使用“DepartmentName”作为排序并将其添加到 Employee 实体类作为返回给定员工的部门名称的方法吗?

第二个问题是节名。我想使用部门名称作为部分。我可以使用上面的方法作为 NSFethedResultsController 的 sectionKeyPath 的值吗?

不确定我是否走在正确的轨道上。

【问题讨论】:

【参考方案1】:

您可以将排序键设置为sectionKey 的department.name 以及排序。您甚至可以先按部门名称排序,然后再按员工姓名排序。

更新

字符串“department.name”既可以用作NSSortDescriptor 中的排序键,也可以用作NSFetchedResultsController 构造中的部分名称。

这是 Key Value Coding 的一部分,强烈建议您阅读它,因为其中潜藏着强大的功能和灵活性。

【讨论】:

什么是“sectionKey”?或者它属于哪个类?作为您的答案,因此可以将“department.name”设置为“sectionKey”参数作为排序描述符?

以上是关于CoreData:关系的排序和部分的主要内容,如果未能解决你的问题,请参考以下文章

iOS / iPhone CoreData 关系

iOS coredata排序描述符使用日期的一部分?

如何在 Coredata 中的相同实体之间创建多个关系?

CoreData - 建模映射表

使用一对多关系向 CoreData 添加新对象

CoreData父、母子关系,一个CoreData子类可以和两个子类有相同的关系吗?