【问题标题】:Plist Hierarchy and 'All' OptionPlist 层次结构和“全部”选项
【发布时间】:2009-11-15 22:25:38
【问题描述】:
我在 plist 中有一串数据,我必须按如下分层显示:
Menu>Chapter>SubChapter>item>item details
这可能非常简单,在我的初始菜单中,我将如何让所有“所有”菜单项显示所有“项目”,基本上跳过章节和子章节并删除过滤器的那个方面,同时保留其他章节和子章节方面。
我可以通过将所有项目的数据加倍来做到这一点,无论我希望它们出现在哪里,但这似乎效率很低。
或
将数据解析为核心数据实体会更容易吗?
【问题讨论】:
标签:
iphone
uitableview
core-data
plist
【解决方案1】:
CoreData 可以大大简化您的代码,尤其是在您经常需要添加、删除或修改对象的情况下。然后您可以在单个 fetch 请求中检索项目,这非常有效。
另一方面,如果您只使用或多或少的静态数据,那么您使用 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];
}
}
}