iOS 9 上的核心数据并发

Core Data Concurrency on iOS 9

如果我在主线程上使用 NSMainQueueConcurrencyType 创建一个 NSManagedObjectContext,我必须对所有 saveperformFetch 方法使用 performBlock() 方法。 IE 是否可以执行以下操作:

do {
    managedObjectContext.save()
} catch let error as NSError {
    print(error)
}

或者我应该总是这样做:

managedObjectContext.performBlock({
    do {
        managedObjectContext.save()
    } catch let error as NSError {
        print(error)
    }
})

如果我对文档的理解正确,我总是必须使用 performBlock()performBlockAndWait() 但在 XCode 7 的模板代码中它们没有使用块。感谢您的帮助!

如果你已经在主线程上并且有一个 NSMainQueueConcurrencyType 上下文,你 不需要 需要使用 performBlock.