核心数据 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