У меня есть две сущности CoreData с один-ко-многим - Contact
(основной) и PhoneNumber
(связанных)Как отсортировать запрос выборки по связанным свойствам?
Контакт может имеет несколько телефонных номеров, и мне нужно сортировать Contacts
по PhoneNumbers
собственности, и я хочу, чтобы отсортировать это существующим в true
ценностей в registered
собственности, например:
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
Получить все значения массива и сортировки это не решение - слишком много контактов может замерзнуть приложению