After save, objectID will be permanent.
However, what about if the managedObjectContext has parent and that parent hasn't save. Will the object ID be permanent?
An object ID is only made permanent when the object is saved to a persistent store.
Saving a managed object context that has a parent context only pushes the changes to the parent. The changes will not be saved to the persistent store (and the object ID made permanent) until the root context is saved.