我有两个CoreData实体与一个一对多的关系 - Contact
(主)和PhoneNumber
(相关)如何对相关属性的提取请求进行排序?
联系人可以有多个电话号码,我需要通过PhoneNumbers
属性进行排序Contacts
,我要排序它通过在registered
物业现有true
值,例如:
Contact1 prop1 = "value1" prop2 = "value2" PhoneNumbers = [ {prop1 = "value1", prop2 = "value2", registered = false}, {prop1 = "value1", prop2 = "value2", registered = false} ] Contact2 prop1 = "value1" prop2 = "value2" PhoneNumbers = [ {prop1 = "value1", prop2 = "value2", registered = false}, {prop1 = "value1", prop2 = "value2", registered = false}, {prop1 = "value1", prop2 = "value2", registered = true} ] Contact3 prop1 = "value1" prop2 = "value2" PhoneNumbers = [ {prop1 = "value1", prop2 = "value2", registered = false}, {prop1 = "value1", prop2 = "value2", registered = false} ]
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:
即使参数类型是否正确
如何按相关属性对数据进行排序?
比较(NSSortDescriptor sortDescriptorWithKey:ascending:comparator:
)不被NSFetchRequest
支持获取所有值数组和排序是不是一个解决方案 - 太多的接触可以冻结申请