0

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

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

回答

1

你可以尝试的最简单的事情是让你的主要MOC成为一个私人排队背景MOC的孩子MOC。这将允许-save:发生在后台。读数将花费相同的时间。 -save:是您必须编排的两阶段保存。第一次保存从主要MOC到后台MOC。第二次保存将在后台线程上将数据推送到持久性存储。

+0

这实际上是为我工作,谢谢。 –