我正在尝试获取其中一个关系中具有最低计数的实体。该实体称为解决方案,它具有称为gamesFeaturedIn的多对多关系,该关系链接到Game对象。所以我这样做(使用RestKit便捷方法):
Solution* lowestPlayedSolution = [Solution findFirstWithPredicate: nil sortedBy: @"gamesFeaturedIn.@count" ascending: NO];
NSUInteger lowestPlayedCount = [lowestPlayedSolution.gamesFeaturedIn count];
这会引发错误:
'含有KVC聚集体的Keepath,其中不应有一个;失败 处理游戏中的数据。@ count'
几年前我发现了一些类似问题的帖子。也许事情发生了变化,旧的帖子没有给出任何明确的答案,如何在不将所有对象存入内存并手动执行计算的情况下执行此操作。任何人吗?
编辑: 核心数据存储是SQLite支持的,因此我无法使用瞬态属性进行排序。
答案 0 :(得分:1)
很抱歉打破坏消息,但事情没有改变,至少在iOS5中。主要有两种解决方法,都非常优雅。
答案 1 :(得分:0)
创建一个临时属性(relationshipCount)和该属性的访问器,在该属性中返回该关系的计数。您现在可以对此属性进行排序。