1

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

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

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

正如我所料,结果会根据颜色分类。

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

例如,当前的部分可能是:

 ""
 "green"
 "red"
 "yellow"

但我希望这些部分按顺序排列:

 "green"
 "red"
 "yellow"
 ""

有没有办法编写排序描述符来获得这种行为?我自己也想不出任何办法。

4

1 回答 1

2

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

于 2013-07-17T20:28:20.917 回答