小编Ros*_*man的帖子

如何利用ios中的核心数据提高大数据导入性能

我在首次启动iOS应用程序时从Web服务导入~18,000个相互关联的各种实体的记录.记录在Web上的数据库中有自己唯一的标识符.我阅读并重新阅读了苹果的文档,cimgf的博客文章,Marcus Zarra关于核心数据的书籍,并一遍又一遍地观看了iDeveloper TV关于核心数据的系列文章.我无法想出一种方法来导入实体A而不将实体B,C和D保留在内存中或执行昂贵的提取并维护实体之间的关系.如果我没有使用核心数据,我将能够使用已经建立的唯一标识符,导入速度会快得多.

如果您有任何建议,我会全力以赴.

我们在Android中实现了这个策略,导入需要大约2.5分钟,相比之下,iOS上大约需要6分钟,不同设备上的硬件可以比较.缩短导入时间对我们的用户至关重要,因此我无法在此问题上妥协.在此先感谢您的帮助.

编辑:

这就是我目前正在做的事情 - 我创建了一个NSOperation来创建它自己的上下文.我首先导入实体B,C和D,并为每个实体类型保留一个数组.然后我导入实体A并使用谓词来过滤实体B,C和D的数组,以便将实体A与B,C和D中的相应实体相关联.我是以优化的间隔批量保存上下文的.根据我当前导入的实体类型而有所不同.

我不只是导入到一个表,我导入了许多彼此相关的表.因此,如果我导入实体B,我必须将实体B保留在内存中,或者在需要它时将实体B与实体A相关联.有意义吗?

sqlite core-data ios

9
推荐指数
2
解决办法
2570
查看次数

标签 统计

core-data ×1

ios ×1

sqlite ×1