使用 Core Data 最有效的方法是啥?

Posted

技术标签:

【中文标题】使用 Core Data 最有效的方法是啥?【英文标题】:What is the most efficient way to use Core Data?使用 Core Data 最有效的方法是什么? 【发布时间】:2010-12-21 23:46:19 【问题描述】:

我正在使用 Core Data 开发一个 iPad 应用程序,并希望有人能澄清有关 Core Data 的一些事情。

现在,我通过对viewDidLoad 中的所有数据发出提取请求来填充我的表。我宁愿在我的tableView:cellForRowAtIndexPath: 中提出单独的获取请求。谁能告诉我哪个更有效,为什么?换句话说,与一个大请求相比,发出大量小请求的效率是否低得多?

【问题讨论】:

【参考方案1】:

您的提取请求有一个名为fetchBatchSize 的属性,它告诉您的提取请求仅批量提取数据。这意味着对于 20 的批量大小,只有前 20 个项目被加载到内存中。当用户滚动超过 20 个时,会自动加载另外 20 个项目,依此类推。

此外,Apple 还提供了一个 NSFetchedResultsController 类,该类旨在管理数据的呈现和编辑(它最适用于表格视图,当然也可以与其他类型的视图控制器一起使用)。它在后台为您处理了许多其他优化(例如批量提取、内存管理等),因此与您自己创建、启动和管理提取请求相比,它提供了更好的性能。

【讨论】:

+1 为NSFetchedResultsController,一个被低估的宝石。

以上是关于使用 Core Data 最有效的方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

解析 XML 和构建 Core Data 数据库最有效的过程是啥?

更改 data.table 中列名大小写的最有效方法是啥?

NSSortDescriptor 对 Core Data NSSet 对象进行排序的最有效方法

获得最近目标的最有效方法是啥

使用来自 Django 后端的数据创建图表/图形的最有效方法是啥

使用 Ruby,获取给定 URL 的内容类型的最有效方法是啥?