Plist层次结构和“全部”选项

时间:2009-11-15 22:25:38

标签: iphone uitableview core-data plist

我在plist中有一串数据,我必须按层次结构显示:

菜单>章节> SubChapter> item>项目详情

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

我可以通过将所有项目的数据加倍,无论我希望它们出现在哪里,但这看起来非常低效。

将数据解析为核心数据实体是否更容易实现此目的?

1 个答案:

答案 0 :(得分:2)

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];
        }
    }
}