后台核心数据

Posted

技术标签:

【中文标题】后台核心数据【英文标题】:CoreData in the background 【发布时间】:2015-09-19 23:59:39 【问题描述】:

所以到目前为止,我一直在主线程中使用 CoreData。我想要实现的是创建一个单独的后台线程并在那里完成所有 CoreData 工作。我已经阅读了很多关于 CoreData 的内容,但是所有后台解决方案似乎都比我实际需要的要复杂。我唯一需要的是能够在不阻塞 UI 的情况下从 CoreData 进行读写。我不在乎写入或读取发生的速度有多快,因此如果对 CoreData 有 100 个读取请求,让它们等待并缓慢执行,主要思想是不要阻塞 UI。在众多 CoreData 多线程方法中,解决该问题的最佳方法是什么?

我已经准备好所有功能,我只想让它在其他线程上运行(但不是主线程)。而且它不像在另一个线程上调度它那么容易(因为我试过了)

【问题讨论】:

【参考方案1】:

您可以尝试的最简单的方法是让您的主 MOC 成为私有队列后台 MOC 的子 MOC。这将允许-save: 在后台发生。读取将花费相同的时间。 -save: 是您必须协调的两阶段保存。第一次保存从主 MOC 到后台 MOC。第二次保存将在后台线程上将数据推送到持久存储。

【讨论】:

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

在位置后台模式下从核心数据访问数据

后台核心数据

核心数据在后台插入大数据

iPhone 编程 - 使用核心数据进行后台保存

删除核心数据对象并保存在后台线程中

核心数据和后台线程的问题