There is no way to force the child to get the saved state instead of the current state.
You either need to fetch the objects before modifying them or you need to have a separate sibling. Another option would be to have a completely separate stack including the PSC.
Update
Siblings are two contexts that extend from the same NSPersistentStoreCoordinator
or from the same parent context.
Fetching beforehand. Create the child context, fetch the objects that are going to be modified in the child. Then modify the objects in parent. The children will not be modified because context changes do not get pushed down.
this is a hack. Core Data is not designed to work like this. CD is an object graph first and it works very hard to keep everything in sync. I would re-think what you are doing and find a cleaner solution.
Update
There is no documentation on how iCloud works internally. However, if I were to write it I would listen for the NSManagedObjectContextDidSave
notification and then based on the insert, update and delete sets I would build the transaction log.