按子查询排序实体 - NSSortdescriptor

时间:2011-05-03 10:25:36

标签: iphone core-data ios4 nssortdescriptor

我有3个核心数据实体:

相关的实体A和实体B和用户

实体A< ------>>实体B<< ----->用户

我想按实体B中该特定用户的条目数对实体A中的条目进行排序。

我可以这样做:

  • 获取所有实体A条目
  • 对于每个条目 - 获取该条目和当前用户的实体B条目数
  • 计算该实体A条目商店的条目数,然后进行排序。

这虽然看起来非常愚蠢。

无论如何我可以使用子查询对NSSortDescriptor进行实体A排序吗? 或者如果你知道其他任何方式我应该解决这个问题?

1 个答案:

答案 0 :(得分:1)

您无法对集合运算符进行排序,因此无法使用排序描述符来执行您想要的操作。与所有谓词一样,子查询只是根据测试找到对象,它们不对它们进行排序。

最简单的解决方案是向bCount添加一个瞬态属性,例如EntityA。然后让getter方法返回相关EntityB个对象的计数:

-(NSNumber *) bCount{
  return [NSNumber numberWithInt:[self.bs count]];
}

然后在EntityA键上对bCount个对象进行排序。