【发布时间】:2014-05-27 06:33:55
【问题描述】:
我正在使用 Core Data 编写一个应用程序,该应用程序必须维护一个具有 4 级层次结构的目录。
Category <--->> SubCategory <--->> Item <--->> SubItem
我有一个屏幕(表格/集合视图),其中Items 与Category 和SubCategory 标题一起显示。项目可能是。
基本上我必须显示过滤目录。假设项目有一个名称,我想按名称过滤项目。
示例。
Category: Category 1
SubCategory: SubCategory 1.1
Items: [aaa, bbb, ccc, abc, abd, abg]
SubCategory: SubCategory 1.2
Items: [aaa, bbb, ccc]
Category: Category 2
SubCategory: SubCategory 2.1
Items: [123ab, 456ab, 123, 345, 456]
使用查询“ab”过滤后,我想查看以下对象:
Category: Category 1
SubCategory: SubCategory 1.1
Items: [abc, abd, abg]
Category: Category 2
SubCategory: SubCategory 2.1
Items: [123ab, 456ab]
问题是:我不能对Category 使用获取请求,因为它只会显示包含满足条件的项目的类别,但不会过滤项目。
我可以直接获取Item 的过滤集合,但我必须重建结构Category - SubCategory - Item 并将其放入一些数组/字典等中。
有没有更好的方法来使用 CoreData 过滤深度嵌套的层次结构? 主要问题:有没有办法在对其根运行获取请求时获取深度嵌套对象树的叶子?
【问题讨论】:
-
我很难理解您想要过滤项目的标准。您能否详细介绍一下子项如何影响获取请求
-
添加示例和更新描述。
-
你能把你用来过滤的
fetch request贴出来吗?
标签: ios objective-c core-data hierarchy hierarchical-data