changed concurrency architecture. Transactions are now done on a direct child context of the root saving context (instead of a main context child)

This commit is contained in:
John Rommel Estropia
2015-03-05 21:31:38 +08:00
parent 1fae78434f
commit e64fc3d2d8
4 changed files with 25 additions and 10 deletions

View File

@@ -60,7 +60,15 @@ internal extension NSManagedObject {
if objectID.temporaryID {
var error: NSError?
if !context.obtainPermanentIDsForObjects([self], error: &error) {
var didSucceed: Bool?
if let managedObjectContext = self.managedObjectContext {
managedObjectContext.performBlockAndWait {
didSucceed = managedObjectContext.obtainPermanentIDsForObjects([self], error: &error)
}
}
if didSucceed != true {
HardcoreData.handleError(
error ?? NSError(hardcoreDataErrorCode: .UnknownError),