核心数据。无法根据与继承实体的关系获取/排序实体

时间:2013-12-04 12:10:45

标签: ios objective-c core-data

[A]<< -------------> [B]属性约

如果关系中的对象是从抽象类继承的话,则无法通过关系基于属性获取/排序对象

NSSortDescriptor *titleSort = [[NSSortDescriptor alloc]initWithKey:@"b.attribute" ascending:YES];
[fetchRequest setSortDescriptors:@[titleSort]]; 


Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'keypath b.attribute not found in entity <NSSQLEntity A id=17>'

所以我们与[B]的“一对一”关系有一些属性;

当我尝试通过[B]的“属性”获取[A]时,我发生了崩溃。

这很奇怪,似乎Core Data不支持处理使用继承实体的keypath

你见过这个????

谓词相同 - 请帮助!!!

提出问题,所有你想要的东西

1 个答案:

答案 0 :(得分:-1)

我不确定问题是B是一个继承的实体。 通常,您无法在第二级执行操作(在与实体A相关的另一实体B上的属性上)。

基本上你应该分两步完成:

  1. 检索所有B对象,按attribute
  2. 排序
  3. 从B对象中获取A对象(非常简单,因为你有一对一的关系)和for-each循环