我如何使用NSFetchedResultsController更改节的顺序?

我使用以下排序描述符设置NSFetchRequest:

[sortDescriptors addObject:[NSSortDescriptor sortDescriptorWithKey:@"color" ascending:YES]];

我将NSFetchedResultsController的sectionNameKeyPath设置为“color”属性。

正如我所期望的那样,结果根据颜色分类成不同的部分。

对于某些对象来说,“color”属性是一个空字符串“”,这是有效的。 这些在第一部分都被分组在一起,因为它们在所有其他名称之前排序。 但是,我希望它们显示为最后一部分,而不是第一部分,不会影响其余对象的搜索顺序。

例如,目前这些部分可能是:

 ""
 "green"
 "red"
 "yellow"

但是我想让这些部分按顺序排列:

 "green"
 "red"
 "yellow"
 ""

有没有办法编写排序描述符来获得这种行为? 我一直无法自己想出任何东西。


基于(基于SQLite的)核心数据获取请求的排序描述符只能使用一些标准比较器方法,并且只能使用存储在数据库中的(持久性)属性。 要获得非标准订单,您必须向实体添加一个附加属性并将其用于排序。

链接地址: http://www.djcxy.com/p/36101.html

上一篇: How can I change section ordering with NSFetchedResultsController?

下一篇: How to use two or more NSFetchedResultsController?