我在plist中有一串数据,我必须按层次结构显示:
菜单>章节> SubChapter> item>项目详情
这可能非常简单,在我的初始菜单中,我如何让所有“全部”菜单项显示所有“项目”,基本上跳过章节和子章节并删除我的过滤器的那个方面,同时保留其他章节和子章节方面。
我可以通过将所有项目的数据加倍,无论我希望它们出现在哪里,但这看起来非常低效。
或
将数据解析为核心数据实体是否更容易实现此目的?
答案 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];
}
}
}