我在 plist 中有一串数据,我必须按如下分层显示:
Menu>Chapter>SubChapter>item>item details
这可能非常简单,在我的初始菜单中,我将如何让所有“所有”菜单项显示所有“项目”,基本上跳过章节和子章节并删除过滤器的那个方面,同时保留其他章节和子章节方面。
我可以通过在我希望它们出现的任何地方将所有项目的数据加倍来做到这一点,但这似乎非常低效。
或者
将数据解析为核心数据实体会更容易吗?
我在 plist 中有一串数据,我必须按如下分层显示:
Menu>Chapter>SubChapter>item>item details
这可能非常简单,在我的初始菜单中,我将如何让所有“所有”菜单项显示所有“项目”,基本上跳过章节和子章节并删除过滤器的那个方面,同时保留其他章节和子章节方面。
我可以通过在我希望它们出现的任何地方将所有项目的数据加倍来做到这一点,但这似乎非常低效。
或者
将数据解析为核心数据实体会更容易吗?
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];
}
}
}