【问题标题】: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: 中提出单独的获取请求。谁能告诉我哪个更有效,为什么?换句话说,与一个大请求相比,发出大量小请求的效率是否低得多?

【问题讨论】:

    标签: cocoa-touch ipad uitableview core-data ios


    【解决方案1】:

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

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

    【讨论】:

    • +1 为NSFetchedResultsController,一个被低估的宝石。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    相关资源
    最近更新 更多