NSMangedObjectContext在后台问题中执行

时间:2015-09-17 08:36:18

标签: ios swift core-data nsmanagedobjectcontext dispatch-async

我读了这个article以在后台保存Core Data数据库中的对象。

在文章的最后,他们使用此代码在后台保存数据:

[temporaryContext performBlock:^{
   // do something that takes some time asynchronously using the temp context

据我所知,如果我们使用performBlock,操作将异步完成,但在哪个队列中?我是否需要将它放在这样的后台线程中:

dispatch_async(dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0), { () -> Void in
            temporaryContext.performBlock({ () -> Void in

            })
        })

或者它足以使用:

temporaryContext.performBlock({ () -> Void in

                })

1 个答案:

答案 0 :(得分:1)

这足以使用:

temporaryContext.performBlock({ () -> Void in

})

您的代码将在与temporaryContext关联的队列中调用。 temporaryContext是一个NSManagedObjectContext,它有自己的私有队列(NSPrivateQueueConcurrencyType)