【问题标题】:CoreData load big dataCoreData 加载大数据
【发布时间】:2013-10-23 07:04:58
【问题描述】:

我想听听有关如何在 iOS 上以用户友好(不阻塞 UI)的方式使用CoreData 从 SQL 存储加载大数据(大量行 - 100000)的其他选项。

目前我正在这样做:

  1. 例如,在名为 B 的托管上下文上的辅助线程上进行提取
  2. 通知 UI 线程数据已加载
  3. reloadData 消息发送到UITableView 以显示新数据
  4. 在表数据源方法中,我使用 managedObjectID 和方法 objectWithIDB 上下文中获取数据,上下文 A 是主要上下文或者在我的例子中是 UI 上下文。

这样做有时我觉得这不是最好的方法,所以我想听听你的其他选择。

感谢您的帮助! :)

【问题讨论】:

  • 为什么需要一次获取所有 100,000 个条目?您的用户界面是否能够同时显示这么多项目?
  • 我想显示这些行,而不是一次将它们全部加载到内存中。我已经这样做了,但我想看看其他人是否有不同的技术。谢谢你不过问题
  • 请查看objc 的第4 期。它们提供了导入大型数据集的示例。

标签: ios objective-c multithreading uitableview core-data


【解决方案1】:

尝试使用NSFetchedResultsController 在主线程上执行此操作,并将batchSize 设置为较小的值(例如200)

【讨论】:

    【解决方案2】:

    如果您不需要更改监控,请将 NSDictionaryResultType 设置为 retch 请求。然后你会得到 NSDictionary 并且你不需要再次从上下文 A 中获取对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      • 2018-08-12
      • 2014-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多