1

当我的 iOS 应用程序首次运行时,我插入了大量实体。我想知道在保存之前我可以在上下文中插入多少项目?我从网络调用中获取了一个大型 JSON 对象。我从 JSON 中提取大量实体并插入它们。

我应该如何处理大量的插入?

谢谢

4

2 回答 2

0

我认为你在保存之前不会有关于上下文大小的问题,但你绝对应该在后台线程上执行它,因为它很可能会冻结应用程序一段时间。如果这仅在您第一次启动应用程序时发生,您可以在主线程上放置进度指示器或其他东西,同时将上下文保存在后台线程上。

有关核心数据的并发上下文保存的详细信息,请参阅此问题的第一个答案。

于 2012-11-15T23:05:12.253 回答
0

祖宗,

将大量项目导入 Core Data 时需要担心很多问题。

第一个也是最重要的问题是管理内存。大型 JSON 文档会解析成大量的小项目。这些迫使您的驻留 VM 足迹不可逆转地增长。这种驻留足迹是应用程序被操作系统杀死的第一大原因。您可以分配较小的内存,但由于驻留足迹的大小仍然会被杀死。

因此,大型文档应该分阶段进行处理,并进行积极的中间内存清理操作。在操作之间使用带有重置的并发 MOC 是可行的方法。然后我实现了一个尾随修剪模式来清理我的主线程 MOC 中保留的任何多余内存。

安德鲁

于 2012-11-16T14:14:24.357 回答