ios - 后台问题中的 NSMangedObjectContext performBlock

标签 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

                })

最佳答案

使用就够了:

temporaryContext.performBlock({ () -> Void in

})

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

关于ios - 后台问题中的 NSMangedObjectContext performBlock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32625878/

相关文章:

ios - 在核心数据 swift ios 中使用未解析的标识符 "Model"

ios - xcode - iOS 中的网络强度

ios - 在 ASIHTTPRequest 中找不到“libxml/HTMLparser.h”文件

ios - CGPattern 与 swift

ios - 在设置为 Autoresize 的 tableView 中插入会导致滚动问题

ios - 在 View 可见之前执行Segue

ios - viewContext 未保存在数据库中 (app.sqlite)

ios - 在屏幕底部显示 UISearchDisplayController

过期处理程序运行后从后台返回时 iPhone 应用程序崩溃

iphone - 将 NSMutableArray 保存到 Core Data