在后台保存 NSManagedObjectContext

Posted

技术标签:

【中文标题】在后台保存 NSManagedObjectContext【英文标题】:Saving NSManagedObjectContext in background 【发布时间】:2012-02-19 08:06:16 【问题描述】:

有没有办法将我的NSManagedObjectContext 保存在后台,脱离主线程?保存会减慢应用的执行速度,因为它通常需要大约 2 秒。

【问题讨论】:

【参考方案1】:

是的,有。 Apple recommends 每个线程使用一个上下文来实现这一点。

您也可以为此使用 GCD,但您需要确保队列不共享上下文,并且您还需要在队列或线程之间传递对象 ID,而不是对象本身。

有关详细说明,请参阅此博客条目:http://www.cimgf.com/2011/05/04/core-data-and-threads-without-the-headache/

【讨论】:

问题是让您的 NSManagedObject 脱离主线程上下文并进入后台线程上下文以保存它们。但也许这不是太慢 @coverback 你能编辑一下链接吗,它不是正确的

以上是关于在后台保存 NSManagedObjectContext的主要内容,如果未能解决你的问题,请参考以下文章

保存在后台线程未完成

在后台队列中保存临时托管对象上下文

如何更改录制音频的音高并在后台保存?

使用 MagicalRecord 在后台保存的设计策略

点击按钮时停止在后台保存到 coredata

iOS 在后台保存主线程 NSManagedObjectContext 更改