【发布时间】:2016-08-05 16:06:48
【问题描述】:
我有两个具有一对多关系的 CoreData 实体 - Contact(主要)和 PhoneNumber(相关)
联系人可以有多个电话号码,我需要按PhoneNumbers 属性对Contacts 进行排序,并且我想按registered 属性中存在的true 值对其进行排序,例如:
Contact2 具有 PhoneNumber 和 registered = true,我想将其移至获取结果的顶部
我的排序描述符:
[NSSortDescriptor sortDescriptorWithKey:@"phoneNumbers" ascending:YES selector:@selector(registeredCompare:)];
当我指定phoneNumbers 键(作为数据模型中的关系)时,我收到错误Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'to-many key not allowed here'
当我将键更改为另一个时,即使参数类型正确,错误也会更改为unsupported NSSortDescriptor selector: registeredCompare:
如何按相关属性对数据进行排序?
NSFetchRequest 不支持比较器 (NSSortDescriptor sortDescriptorWithKey:ascending:comparator:)
获取所有值到数组并对其进行排序不是解决方案 - 太多的联系人可能会冻结应用程序
【问题讨论】:
标签: sorting core-data relationship nssortdescriptor