NSFetchedResultsController按一对多关系排序

时间:2012-02-14 12:53:04

标签: ios core-data nsfetchedresultscontroller

我在CoreData中有三种对象类型; ObjectA,ObjectB和ObjectC。这些对象与这样的一对多关系相关:

[ObjectA]--E[ObjectB]--E[ObjectC]

我尝试完成的工作是将NSFetchedResultsController按ObjectA中的属性分组,并按ObjectC中的属性进行排序。

排序应如何运作: - 在ObjectC中有一个日期属性;最近更新时间。 ObjectA将与几个ObjectC连接,并由几个lastUpdated连接。 - 我的NSFetchedResultsController将显示ObjectA,按这些lastUpdated排序。 - 具有最新更新的ObjectC的ObjectA应首先出现。 - 我只对具有最新lastUpdated值的ObjectA的ObjectC感兴趣。

这是否可以使用NSFetchedResultsController和CoreData?

我认为另一种方法是在ObjectA上创建一个NSFetchedProperty,但是这可能不是一个更好的解决方案。

1 个答案:

答案 0 :(得分:0)

使用单个NSFetchRequest,您将无法做到这一点。您可以使用NSExpressionsetPropertiesToFetch:来结束,但不能完全,因为您无法在键值编码中嵌套集合运算符。

您最好的选择是在ObjectA上创建一个NSFetchedProperty,它会获得与最新lastUpdated相关联的(通过ObjectB)ObjectC。为了实现这一点,您最好的选择是在 ObjectB 上设置NSFetchedProperty,以获取最新lastUpdated的关联ObjectC。