我有一个可以包含无限数量子项的CoreData模型。我想要显示的每个对象的列表,缩进了可读性,像这样从coredata获取父子数组
Object
Object first child
first childs children
first child children
Object second child
Object 2
Object also has children
MOre children
Childs
现在我来自一个PHP的背景。在PHP中,我会创建一个简单的数组,它会遍历一些函数来构建这个列表,但这对我来说似乎仍然很愚蠢。
我得到一个平面阵列,基本上有这样的项目: array.name = @“Name”; array.children =无或coredata行 array.parent =无或coredata行
如何遍历此并显示列表缩进和分组像上面。
感谢任何指针或例子
着 - 下面指针完成了它:生成的代码如下:
生成的代码是(类似下面,我有我自己的调整,但多数民众赞成细节)
- (NSArray *)flattenGroupsWithParent:(NSManagedObject<ECCGroup> *)parent {
//findGroupsForGroups gets all nodes with parent: parent.
NSArray *children = [dataSource findGroupsForGroup:parent];
for (NSManagedObject<ECCGroup> *child in children) {
ECCGroupNode *node = [[ECCGroupNode alloc] initWithGroup:child label:child.name];
[result addObject:node];
[result addObjectsFromArray:[self flattenGroupsWithParent:child]];
[node release];
}
}
生成的数组:结果。包含一个数组,按顺序。与所有父母 - >孩子。 在我的情况下,在需要时缩进。 (使用额外的参数不是如上图所示)