Я использую CoreData и два суб-объекты с общей абстрактной супер-субъекта, давайте назовем ихСортировка NSFetchRequest на основе объекта класса
SuperEntity,
FirstSubEntity and
SecondSubEntity
Все три организации имеют свой собственный подкласс NSManagedObject
или SuperEntity
.
Я использую NSFetchRequest
для извлечения всех объектов типа SuperEntity
, то есть я буду получать множество всех FirstSubEntities
и SecondSubEntities
все перемешаны вместе. Я хочу сортировать этот набор на основе класса сущности, как это.
<FirstSubEntity id=X>
<FirstSubEntity id=X>
<FirstSubEntity id=X>
- ...
<SecondSubEntity id=X>
<SecondSubEntity id=X>
- ...
Я пытаюсь установить NSSortDescriptor
с ключом class
:
[NSSortDescriptor sortDescriptorWithKey:@"class" ascending:YES]
К сожалению, он бросает исключение
'NSInvalidArgumentException', reason: 'keypath class not found in entity <NSSQLEntity SuperEntity id=X>'
Любопытно, что если я вместо того, чтобы использовать NSFetchedResultsController
я могу установить на имя раздела class
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:[RKManagedObjectStore defaultStore].mainQueueManagedObjectContext
sectionNameKeyPath:@"class"
acheName:nil];
Какой из них прекрасно работает. Любые идеи о том, как управлять этим с помощью NSSortDescriptors
?
«Он больше не работает прошивкой 10:„NSInvalidArgumentException“, причина:„Ключевой путь entity.name не найден в сущности“» Маркус, это еще можно сортировать результаты по имя сущности? У тебя есть решение? –
Yarlik