后台核心数据
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。第二次保存将在后台线程上将数据推送到持久存储。
【讨论】:
以上是关于后台核心数据的主要内容,如果未能解决你的问题,请参考以下文章