Quiero agrupar los resultados de un NSFetchRequest
por entidad. Todas las entidades comparten el mismo padre abstracto. Por ejemplo:¿Es posible ordenar por subclases en una `NSFetchRequest` sin agregar atributos adicionales?
animal
|
|-cat
|
|-dog
El NSFetchRequest
ha includesSubentities
establecer TRUE
y entity
conjunto a animal
. Es posible establecer sectionNameKeyPath
de NSFetchedResultsController en entity.name
pero no es posible hacer lo mismo con sortDescriptors
del NSFetchRequest
debido a que el sortDescriptors
se aplica a los atributos almacenados (es decir, datos en la base de datos, no métodos en las clases) Por lo tanto, la única forma de agrupar por tipo de entidad es agregar un atributo a la superclase que las subclases puedan usar para identificarse.
Esto parece una locura ya que socava la utilidad de la herencia. Eché un vistazo a la base de datos SQLite y el tipo de entidad se almacena en la misma tabla que los atributos, por lo que los datos requeridos ya están en su lugar.
En resumen: ¿Es posible ordenar por subclases en un NSFetchRequest
sin agregar atributos adicionales?
¿Alguna vez encontró una respuesta a esta pregunta? – epologee
@epologee. No, no he encontrado una solución. Creo que lo mejor que puede hacer es volver a ordenar 'fetchedResultsController.sections' o no usar' NSFetchedResultsController'. –
He recurrido al uso de varias instancias NSFetchedResultsController, una para cada entidad: S. Favorito la pregunta si alguna vez alguien encuentra una respuesta. Aclamaciones. – epologee