使用NSTableView处理大约500,000条记录的高效核心数据处理

时间:2014-03-30 09:44:47

标签: core-data nstableview memory-efficient ticoredatasync

早上好,我开发了一个iOS应用程序,使用Core Data和TICoreDataSync库(http://timisted.github.io/TICoreDataSync/)在设备之间进行同步,现在我想创建一个类似的Mac OSX应用程序来与iOS同步,我和#39;浏览网页如何有效处理数据,因为我有大约500.000条记录。在iOS上,我使用NSFetchedResultsController有效地管理从Core Data获取请求返回的结果,为UITableView对象提供数据,但在Mac OSX上,NSFetchedResultsController不可用,所以我在这里阅读替代方案:

http://youtu.be/NpDQDjFJ_5Y

How to handle extremely large CoreData store in NSTableView?

NSArrayController without loading a large dataset into an array

但阅读评论似乎有人认为这些方式仍然滞后。你建议我做什么? 非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用Core Data incremental Store在后台将数据同步到Mac OSX。

https://developer.apple.com/library/ios/documentation/DataManagement/Conceptual/IncrementalStorePG/Introduction/Introduction.html

要在表视图上加载数据,可以使用委托源方法从本地核心数据存储中批量获取数据

- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row;

否则,如果您不想使用Core Data Incremental Store(这将很难使用),那么在委托方法中,调用服务以获取您的数据并在UI上显示它。我们已成功测试并处理了大约200000多条记录。