使用 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 数据库最有效的过程是啥?
NSSortDescriptor 对 Core Data NSSet 对象进行排序的最有效方法