iphone SDK:核心数据,如何对 NSFetchedResultsController 中的部分进行排序?
我有一个核心数据应用程序,它使用sectionNameKeyPath“group.name”和fetchRequest,以便按组实体的名称属性对结果进行分组。我按 group.name 进行分组,但我想按 group.name 以外的其他内容对各部分进行排序。根据 NSFetchedResultsController 文档:
如果控制器生成部分, 数组中的第一个排序描述符 用于将对象分组为 部分;它的键必须是 与sectionNameKeyPath或相同 使用其键的相对排序必须 使用sectionNameKeyPath 进行匹配。
这意味着这些部分必须按照分组的顺序进行排序。尽管有文档,但在iOS 4.2之前,您可以在不将sectionNameKeyPath指定为第一个排序描述符的情况下逃脱,这允许您对各部分进行排序,但不再是。
对 NSFetechedResultsController 中的部分进行排序的最佳方法是什么?例如,我希望我的部分按“group.name”分组,但按“group.timestamp”排序。
I have a core data app that is using the sectionNameKeyPath "group.name" with the fetchRequest in order to group the results by the group entity's name attribute. I'm grouping by group.name but I'd like to sort the sections by something other than group.name. According to the NSFetchedResultsController docs:
If the controller generates sections,
the first sort descriptor in the array
is used to group the objects into
sections; its key must either be the
same as sectionNameKeyPath or the
relative ordering using its key must
match that using sectionNameKeyPath.
Which means that the sections must be sorted in the same order the are grouped in. Despite the documentation, prior to iOS 4.2 you could get away without specifying the sectionNameKeyPath as the first sort descriptor which allowed you to sort the sections, but no longer.
What is the best way to sort sections in an NSFetechedResultsController? For example, I want my sections to be grouped by "group.name" but sorted by "group.timestamp".
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
来自 NSFetchedResultsController 文档:
From the NSFetchedResultsController docs: