Core Data - 批量处理获取结果的属性

Posted

技术标签:

【中文标题】Core Data - 批量处理获取结果的属性【英文标题】:Core Data - batch handling the attributes of fetched results 【发布时间】:2012-08-22 23:42:31 【问题描述】:

我有一堆从托管对象上下文中获取的托管对象。这些对象有一个 imageFilePath 属性,它只是保存到手机目录中的图像数据对象的路径。我的问题是 - 将所有这些数据对象批量转换为一组照片的最佳方法是什么?

我正在考虑只遍历托管对象的数组,但这似乎有些低效。我也可以在我的模型中从这个属性创建一个单独的实体,然后直接获取它们。

有没有一种方法可以在获取的每个结果中应用一个块?

谢谢!

【问题讨论】:

你迭代中的代码是什么? “照片数组”是指 UIImage 数组?最后,您是一次展示所有这些照片,还是现在只展示几张,其余的稍后展示? 【参考方案1】:

如果您担心核心数据方面的问题,请查看您可以在 NSFetchRequest 上设置的 fetchBatchSize。您必须进行一些试验才能看到最适合您的尺寸,但像 25 这样的东西是一个很好的起点。这样,Core Data 不会一次从磁盘中获取所有对象,而是一次对 25 个对象进行故障处理。你仍然可以看到一个普通的NSArray,Core Data 在后台执行所有的魔法。

【讨论】:

..如果您将 Daniel 的建议与在生成的 NSArray 上调用 enumerateObjectsUsingBlock: 结合起来,它基本上可以归结为您想要的:“在我获取的每个结果中应用一个块”。通过调整fetchBatchSize,您应该能够找到所需的内存使用平衡。

以上是关于Core Data - 批量处理获取结果的属性的主要内容,如果未能解决你的问题,请参考以下文章

8-16 请求合并对象构建

MySQL 批量添加

ASP.NET Core Web 应用程序系列- 在ASP.NET Core中使用Autofac替换自带DI进行构造函数和属性的批量依赖注入(MVC当中应用)

springboot 整合 mongodb实现 批量更新数据

ASP.NET Core Web 应用程序系列- 在ASP.NET Core中使用Autofac替换自带DI进行构造函数和属性的批量依赖注入(MVC当中应用)

批量处理文件名任何后缀的中文文件名字后面加全拼首首字母的批处理?