我試圖解決從多個線程訪問相同的NSManagedObjectContext
導致的問題。我發現,在Apple docs如下:多線程核心數據 - persistentStoreCoordinator vs parentContext
let moc = … //Our primary context on the main queue
let privateMOC = NSManagedObjectContext(concurrencyType: .PrivateQueueConcurrencyType)
privateMOC.parentContext = moc
privateMOC.performBlock {
//...
}
這似乎是我後。我還發現一個tutorial非常相似的已更新爲iOS 9東西:
let privateContext = NSManagedObjectContext(concurrencyType: .PrivateQueueConcurrencyType)
privateContext.persistentStoreCoordinator = coreDataStack.context.persistentStoreCoordinator
privateContext.performBlock {() -> Void in
//...
}
他們似乎都達到相同的,然而蘋果的文檔的版本使用的parentContext
而不是直接使用persistantStoreCoordinator
。這兩種方法有什麼區別?