如何对两个不同的核心数据对象进行排序?
Posted
技术标签:
【中文标题】如何对两个不同的核心数据对象进行排序?【英文标题】:How to sort two different core data objects? 【发布时间】:2016-02-24 20:46:33 【问题描述】:我有两个核心数据实体。说生日和周年纪念。
这些实体的属性是,
生日 - 姓名、年龄、出生日期
周年纪念日 - 姓名、周年纪念日
在表格视图中分别显示每个实体可以使用获取的结果控制器来完成。没关系!!但是,我想展示一个结合了生日和周年纪念日的表格视图。排序应该通过从 Birthday 中获取“Birth date”和从 Anniversary 实体中获取“Anniversary date”来完成。
问题:
我应该使用两个 fetchedresultscontroller 从这两个实体中获取对象吗?然后我应该对这些对象进行排序吗?这对于最少的对象来说很好,但是当计数增加时会花费更多的处理时间。
我是否应该创建一个拥有“出生日期”和“周年纪念日”值的公共父表?如果是这样,我该如何获取以及如何定义排序描述符?
我对核心数据真的很陌生,对这种情况一无所知。提供示例将不胜感激。
谢谢
【问题讨论】:
【参考方案1】:最好的办法是使用两个fetchedresultscontrollers
,然后将每组结果相互排序,然后将两者合并。这似乎是实现此目标的一种合乎逻辑的方式......另一个想法可能是在生日和周年纪念之间建立一个通用模型,该模型共享尽可能多的属性(IE 名称和日期),然后您的排序描述符可以在模型超类的日期属性。
【讨论】:
【参考方案2】:添加父实体。周年纪念日和生日都应该继承共同的属性。然后您可以使用一个 frc 来查询周年纪念日和生日。
【讨论】:
以上是关于如何对两个不同的核心数据对象进行排序?的主要内容,如果未能解决你的问题,请参考以下文章
使用 NSFetchedResultsController 对核心数据对象进行排序