核心数据 NSFetchedResultsController

Posted

技术标签:

【中文标题】核心数据 NSFetchedResultsController【英文标题】:Core Data NSFetchedResultsController 【发布时间】:2011-03-15 06:54:27 【问题描述】:

如何减少核心数据中的获取请求时间?

我正在使用 从 .sqlite 文件中获取 10000 个数据,加载时间过长。

【问题讨论】:

尝试接受 TechZen 的回答。您的问题真的值得。 【参考方案1】:

见:Core Data Performance in the Core Data Programming Guide

通常,您希望设置提取限制并将提取作为错误。这样,您最终只会得到一小部分轻量级代理对象。您还应该确保使用 NSFetchResultsController 的缓存。

但是,您可能需要重新考虑您的 UI 设计。我有 10,000 行的单表很疯狂,尤其是在移动设备上。即使使用索引表,您也会要求您的用户浏览数百行。您应该考虑将数据分解为某种逻辑层次结构,以便可以在表格视图的层次结构中显示。原则上,您可以在 4 个表中显示 10,000 个对象,每个表只有 10 个选项。这对用户来说更容易导航,并且每个表的相应提取也将是轻量和快速的。

【讨论】:

【参考方案2】:

您可以尝试仅获取对象 ID 而不是整个对象。它通常更快。

【讨论】:

以上是关于核心数据 NSFetchedResultsController的主要内容,如果未能解决你的问题,请参考以下文章

如何按创建 UITableViewCell 时计算的值对 UITableView 进行排序?

启动 Core Data 应用程序时在后台配置 NSFetchedResultsController

大数据核心技术都有哪些

哪里不使用核心数据?是不是可以将核心数据用作 MySql 之类的数据库?

使用 MKMapView、核心位置和核心数据

大数据三大核心技术:拿数据、算数据、卖数据!