我在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,但是这可能不是一个更好的解决方案。
答案 0 :(得分:0)
使用单个NSFetchRequest
,您将无法做到这一点。您可以使用NSExpression
和setPropertiesToFetch:
来结束,但不能完全,因为您无法在键值编码中嵌套集合运算符。
您最好的选择是在ObjectA上创建一个NSFetchedProperty
,它会获得与最新lastUpdated
相关联的(通过ObjectB)ObjectC。为了实现这一点,您最好的选择是在 ObjectB 上设置NSFetchedProperty
,以获取最新lastUpdated
的关联ObjectC。