我有一个非常简单的数据模型,由2个对象组成 - Section
和Item
。每个Section
与其他Section
对象具有多对子关系,并且与另一个Section
对象具有一对一的父关系。每个部分都与Item
个对象具有多对多关系。
除了结构之外,一些Section
个对象没有Item
个对象,而其他对象(位于层次结构的底部)没有Section
个子对象。
我想创建一个tableview,它将使用Section
个对象来创建节标题,然后将Item
个对象显示为tableViewCells,它们是Section
的一部分。如果Section
没有Items
,我还希望显示表标题,因为查看层次结构非常重要。
给定一个随机Section
对象,我将如何获取并显示此数据?我是否需要创建一个扁平化数组中的数据的嵌套循环,或者是否有一些很好的方法来利用谓词和NSFetchedResultsController
?
答案 0 :(得分:0)
我会使用排序描述符构建您的NSFetchedResultsController,该描述符按节的ID对项目进行排序。
类似的东西:
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"section.ID" ascending:YES];
这将为您的NSFetchedResultsController提供按部分分组的所有正确项目。然后你只需要充实你的表视图数据源并相应地委派。
答案 1 :(得分:0)
Item
section.ID
,第二个应排序id
。这将返回一个Item
对象数组,这些对象首先按部分排序,然后按自己的id
属性排序。 sectionNameKeyPath
参数设置为section.ID
。这将导致节名称显示为Section.ID
值。 那应该给你一个这样的表:
Section.ID
Item.ID
Item.ID
Item.ID
Section.ID
Item.ID
.... and so on.