iphone SDK:核心数据,如何对 NSFetchedResultsController 中的部分进行排序?

发布于 2024-10-05 23:07:57 字数 546 浏览 3 评论 0原文

我有一个核心数据应用程序,它使用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱冒险 2024-10-12 23:07:57

来自 NSFetchedResultsController 文档:

如果满足以下条件,则创建该类的子类:
你想要定制创建
章节和索引标题。你
覆盖
sectionIndexTitleForSectionName:如果
您希望部分索引标题为
除大写字母外的其他内容
节名称的第一个字母。你
覆盖sectionIndexTitles如果你
希望索引标题是某种东西
除了创建的数组之外
呼叫
sectionIndexTitleForSectionName: 上
所有已知部分。

From the NSFetchedResultsController docs:

You create a subclass of this class if
you want to customize the creation of
sections and index titles. You
override
sectionIndexTitleForSectionName: if
you want the section index title to be
something other than the capitalized
first letter of the section name. You
override sectionIndexTitles if you
want the index titles to be something
other than the array created by
calling
sectionIndexTitleForSectionName: on
all the known sections.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文