CoreData加载大数据

时间:2013-10-23 07:04:58

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

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

目前我这样做:

  1. 在名为 B 的托管上下文的辅助线程上进行提取,例如
  2. 通知UI线程已加载数据
  3. reloadData讯息发送至UITableView以显示新数据
  4. 在表格数据源方法中,我使用managedObjectID和上下文 A 上的方法objectWithID B 上下文获取数据是我的主要上下文或UI上下文。
  5. 这样做有时我觉得这不是最好的方法,所以我想听听你的其他选择。

    感谢您的帮助! :)

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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