added mechanism to track transaction sources

This commit is contained in:
John Estropia
2021-09-15 14:45:13 +09:00
parent 45215c7a18
commit 4ddfa95140
26 changed files with 1323 additions and 179 deletions

View File

@@ -113,6 +113,10 @@ extension NSManagedObjectContext {
return
}
let saveMetadata = rootContext.saveMetadata
context.saveMetadata = saveMetadata
let mergeChanges = { () -> Void in
if let updatedObjects = (note.userInfo?[NSUpdatedObjectsKey] as? Set<NSManagedObject>) {
@@ -123,8 +127,9 @@ extension NSManagedObjectContext {
}
}
context.mergeChanges(fromContextDidSave: note)
context.saveMetadata = nil
}
if rootContext.isSavingSynchronously == true {
if case true? = saveMetadata?.isSavingSynchronously {
context.performAndWait(mergeChanges)
}