Iphone 核心数据-FetchedResultController返回复杂的数据结构?

Iphone 核心数据-FetchedResultController返回复杂的数据结构?,iphone,objective-c,ios,core-data,nsfetchedresultscontroller,Iphone,Objective C,Ios,Core Data,Nsfetchedresultscontroller,我有以下结构,基本上是一个树状视图。 每个节点都有一组NSSet节点,每个节点都是一个包含NSDate的对象 -4 -1 -3 -2 -5 -7 -6 -8 是否可以编写一个核心数据查询,返回以下结果每个节点都包含有关其父节点的信息 {1,2,3,4,5,6,7,8} 每个级别中的项目应按日期排序您是否尝试过NSSortDescriptor。。。例如: NSSortDescriptor *sortDescriptor = [[NSSortDescriptor a

我有以下结构,基本上是一个树状视图。 每个节点都有一组NSSet节点,每个节点都是一个包含NSDate的对象

-4
-1
   -3
   -2
-5
   -7
   -6
   -8
是否可以编写一个核心数据查询,返回以下结果每个节点都包含有关其父节点的信息

{1,2,3,4,5,6,7,8}

每个级别中的项目应按日期排序

您是否尝试过NSSortDescriptor。。。例如:

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"timeStamp" ascending:NO];
更多教程来自此。

简短回答;没有

首先,核心数据使用的是对象,而不是像这样的原始值

其次,NSFetchedResultsController被设计为返回一组具有相同实体类型且可能被划分为多个部分的对象。您所描述的是一个多级结构,不符合NSFetchedResultsController的目标

使现代化 如果您只是希望返回按yProperty排序的XEntity数组,而不考虑XEntity中的父/子关系,那么您不需要NSFetchedResultsController。只需创建一个NSFetchedRequest,并将-setEntity:设置为XEntity,然后添加一个NSSortDescriptor,该描述符根据yProperty进行排序,并根据NSManagedObjectContext执行提取


如果您希望在数据更改时更新,那么您可能希望对相同的NSFetchedResultsController请求使用NSFetchedResultsController。

除了对树的每个级别进行排序之外,我看不到排序描述符在这里有什么帮助。您是否真的需要使用NSFetchedResultsController,或者您是否愿意接受其他建议?您需要NSFetchedResultsController的哪些属性?我愿意接受其他建议。我很高兴,只要它在一棵树上表现良好,比如说400-500件物品。我正在尽可能避免循环。我的所有节点都在同一个实体中,并且它们的类型都相同。每个对象都有一个parentId,它引用同一实体中的另一个对象。即使它们是同一实体,它仍然是一个多级结构。您可以构建fetch等来检索数据,也可以构建自己的观察程序来观察更改,但是NSFetchedResultsController不适合。它是为单一层次的数据设计的。我认为你不完全理解我的问题。我在coreData中存储了一个树结构,但我希望fetchedResultController返回单个级别的对象,但顺序与树相同。因此,如果树有20行,我希望获取的结果控制器返回一个包含20个对象的数组。诀窍是正确地对每个项目进行排序