【发布时间】:2015-05-13 14:06:02
【问题描述】:
如下图所示,Company 对象与一组FinancialMetric 对象有关系。我想通过关系属性financialMetrics 中的特定FinancialMetrics
(value 与最近的date 和type“收入”)之一的值对Company 对象中的NSFetchedResultsController 进行排序.如果不将 Company 对象加载到数组中然后对数组进行排序,这是否可行?我想将所有内容都保留在 NSFetchedResultsController 中,就像您按照 name 或 city 等任何常规属性进行排序一样。
公司实体详情...
FinancialMetric 实体详细信息...
【问题讨论】:
-
Company-FinancialMetrics 关系是一对一、一对多还是多对多?您是否需要将结果分组?
-
公司与 FinancialMetrics 的关系是一对多的。结果不会被分组。只是按收入值降序排列。
-
这会很困难,因为是一对多的关系,而且需要选择日期最近的值。我认为在
Company中维护一个额外的mostRecentValue属性可能更容易。 -
这就是我所害怕的。我希望避免添加仅用于排序的属性。
-
我认为可能有一种方法涉及首先获取一组 FinancialMetrics(每家公司的最新数据)。然后将该数组作为 IN 谓词传递给 FRC。 FRC 还将获取 FinancialMetrics,因此可以对它们的价值进行排序,但由于这是一对一的关系,因此可以直接与公司联系。缺点是如果 FinancialMetric 对象发生变化,您将不得不重新执行两次提取。
标签: ios sorting core-data nsfetchedresultscontroller nsfetchrequest