Iphone Plist层次结构和';全部';选项

Iphone Plist层次结构和';全部';选项,iphone,uitableview,core-data,plist,Iphone,Uitableview,Core Data,Plist,我在plist中有一个数据字符串,我必须按如下层次显示: NSMutableArray* allItems = [NSMutableArray array]; for (NSArray* chapter in menu) { for (NSArray* subchapter in chapter) { for (id item in subchapter) { [allItems addObject:item]; } } }

我在plist中有一个数据字符串,我必须按如下层次显示:

NSMutableArray* allItems = [NSMutableArray array];
for (NSArray* chapter in menu) {
    for (NSArray* subchapter in chapter) {
        for (id item in subchapter) {
            [allItems addObject:item];
        }
    }
}
菜单>章节>分章>项目>项目详细信息

这可能非常简单,在我的初始菜单中,我如何让所有的“全部”菜单项显示所有的“项目”,基本上跳过章节和分章,删除我的过滤器的那个方面,同时保留其他章节和分章方面

我可以将所有项目的数据翻倍到我希望它们出现的地方,但这似乎效率很低


要做到这一点,将数据解析为核心数据实体会更容易吗?

CoreData可以大大简化您的代码,尤其是当您经常需要添加、删除或修改对象时。然后,您可以在单个获取请求中检索项目,这是非常有效的

另一方面,如果您只使用或多或少的静态数据,那么使用CoreData(ManagedObjectContext、PersistentStoreCoordinator等)产生的开销可能不会得到回报,您最好在解析plist之后创建一个包含所有项的数组,如下所示:

NSMutableArray* allItems = [NSMutableArray array];
for (NSArray* chapter in menu) {
    for (NSArray* subchapter in chapter) {
        for (id item in subchapter) {
            [allItems addObject:item];
        }
    }
}