我想按实体对NSFetchRequest
的结果进行分组。这些实体都共享相同的抽象父项。例如:是否可以在不添加额外属性的情况下按“NSFetchRequest”中的子类进行排序?
animal
|
|-cat
|
|-dog
的NSFetchRequest
已includesSubentities
设置TRUE
和entity
设置为animal
。可以将NSFetchedResultsController的sectionNameKeyPath
设置为entity.name
,但不可能对NSFetchRequest
的sortDescriptors
做同样的处理,因为sortDescriptors
应用于存储的属性(即数据库中的数据,而不是类中的方法)。因此按实体类型分组的唯一方法是向超类添加一个属性,子类可以用它来标识自己。
这看起来很疯狂,因为它破坏了继承的有用性。我查看了SQLite数据库,实体类型与属性存储在同一个表中,因此所需的数据已经就位。
总结:是否可以按NSFetchRequest
中的子类进行排序而不添加其他属性?
你有没有找到这个问题的答案? – epologee 2011-07-04 20:31:30
@epologee。不,我没有找到解决方案。我认为最好的办法是重新排序'fetchedResultsController.sections'或不使用'NSFetchedResultsController'。 – 2011-07-04 20:34:00
我已经采取了使用多个NSFetchedResultsController实例,每个实体一个:S。收藏这个问题,如果有人找到答案。干杯。 – epologee 2011-07-04 23:42:39