【发布时间】:2015-12-26 13:07:55
【问题描述】:
我想用多个 sectionNameKeyPath 拆分核心数据请求。让我举个例子:我在数据库中有事件(属性:标题、小时、配置文件)。我想向用户显示按小时和配置文件分隔的事件。仅使用一个属性(使用 NSFetchedResultsController)、小时或配置文件来查找如何操作。
【问题讨论】:
标签: ios objective-c swift core-data
我想用多个 sectionNameKeyPath 拆分核心数据请求。让我举个例子:我在数据库中有事件(属性:标题、小时、配置文件)。我想向用户显示按小时和配置文件分隔的事件。仅使用一个属性(使用 NSFetchedResultsController)、小时或配置文件来查找如何操作。
【问题讨论】:
标签: ios objective-c swift core-data
您不能按两个属性划分(这很荒谬,见下文)。您可以按属性划分,每个部分中的对象按其他属性排序。 (只需添加第二个排序键。)
“按两个属性”部分没有任何意义。你会得到完全不可用的数据,比如
11:25 - John
11:30 - Bob
11:30 - John
11:32 - John
11:33 - Bill
或
Bill - 11:33
Bob - 11:30
John - 11:25
John - 11:30
John - 11:32
应用达达主义。
【讨论】:
如果您将多个排序描述符传递给 fetch 请求,您将获得接近我认为您所描述的内容。
要获得 Mundi 的示例(首先按名称排序,然后按时间排序),您需要传递一个包含两个排序描述符的数组:
Bill - 11:33
Bob - 11:30
John - 11:25
John - 11:30
John - 11:32
然后将 Name 属性作为您的部分名称 keypath 传递。这会给你类似的东西
Bill
Bill - 11:33
Bob
Bob - 11:30
John
John - 11:25
John - 11:30
John - 11:32
【讨论】:
受此启发:http://blog.adambardon.com/tableview-with-many-sections-and-items-from-array/
在“sortedSections”中,我只是将一个带有这两个属性的连接字符串放在一起,而不是在标题上使用它(直接从数据数组对象中放置信息)。
【讨论】: