问题:我实现了用户在xml中下载大量对象的应用程序。为了减少峰值内存占用,我想将数据解析为Core Data,然后使用批处理在表视图中显示它们。我不希望它们被保存,因为对象每天都在变化,但我想让用户选择它的收藏对象,然后保存它们。收藏夹将显示在不同的表格视图中。
我正在思考的解决方案:
这里的任何暗示都会很好。还有一些代码示例代码与解决方案一,因为我是Core Data的新手,我可能会遇到问题。我现在一直在寻找合适的解决方案两天。
答案 0 :(得分:0)
我建议你忘记优化内存占用,除非你有一些确凿的证据表明实际上需要这样做。但当然这取决于“xml中的大量对象”究竟意味着什么。
我假设您没有下载数百万个XML文档,只是为了在应用程序完成时再将它们丢弃(因为这会严重浪费网络资源)。相比之下,就内存而言,具有几百甚至几千个类似XML的小数据结构的数组很可能无需担心。
话虽如此,如果你需要用Core Data保存临时数据和持久数据,我会选择一个带有两个实体而不是两个单独上下文的NSManagedObjectContext。或者您甚至可以拥有一个实体,并将某些实例标记为临时数据。管理两个不同的上下文意味着额外的开销,而我真的没有看到这种方法的任何优势。