Я хочу сгруппировать результаты NSFetchRequest
по сущности.Все сущности имеют одного и того же абстрактного родителя.Например:
animal
|
|-cat
|
|-dog
NSFetchRequest
имеет includesSubentities
, установленное TRUE
, и entity
, установленное на animal
.Можно установить sectionNameKeyPath
для NSFetchedResultsController равным entity.name
, но невозможно сделать то же самое с sortDescriptors
для NSFetchRequest
из-за того, что sortDescriptors
применяется к сохраненным атрибутам (т.е.данные в базе данных, а не методы на классах).Поэтому единственный способ группировки по типу сущности - это добавить атрибут к суперклассу, который подклассы могут использовать для идентификации себя.
Это кажется сумасшедшим, поскольку подрывает полезность наследования.Я просмотрел базу данных SQLite, и тип сущности хранится в той же таблице, что и атрибуты, поэтому необходимые данные уже находятся на месте.
В заключение: можно ли сортировать по подклассам в NSFetchRequest
без добавления дополнительных атрибутов?