2015-10-19 52 views
1

当我在背景(非主)线程中执行MR_findFirstWithPredicate时,发生随机崩溃。我正在使用NSManagedObjectContext.MR_defaultContext()进行主线程和后台线程的所有神奇记录操作 - 我认为这是问题的根源,但我不知道如何解决它。魔法记录:在后台线程中获取数据时崩溃

我应该在后台线程中执行操作时使用其他上下文吗?我尝试使用NSManagedObjectContext.MR_context,但所有取回返回零。也尝试过NSManagedObjectContext.MR_newPrivateQueueContext,但是每次抓取操作都会导致应用程序崩溃。

回答

1

你是对的,你应该使用NSPrivateQueueConcurrencyType做的背景。听起来像MR_newPrivateQueueContext是正确的调用,但你可能你必须给它一个持久化的Store或一个parentContext。在这种情况下,你可以在MR_newPrivateQueueContext parentContext设置为的DefaultContext

let defaultContext = NSManagedObjectContext.MR_defaultContext() 
let privateContext = NSManagedObjectContext.MR_newPrivateQueueContext 
privateContext.parentContext = defaultContext 
+0

加也,不要忘记使用'performBlock:'或'performBlockAndWait:'对操作'MR_newPrivateQueueContext'创建。 – Mindy

相关问题