didSave()
Provides an opportunity to add code into the life cycle of the managed object after the managed object’s context completes a save operation.
Declaration
func didSave()Discussion
You can use this method to notify other objects after a save, and to compute transient values from persistent values.
This method can have “side effects” on the persistent values, however any changes you make using standard accessor methods will by default dirty the managed object context and leave your context with unsaved changes. Moreover, if the object’s context has an undo manager, such changes will add an undo operation. For document-based applications, changes made in didSave will therefore come into the next undo grouping, which can lead to “empty” undo operations from the user’s perspective. You may want to disable undo registration to avoid this issue.
The sense of “save” in the method name is that of a database commit statement and so applies to deletions as well as to updates to objects. For subclasses, this method is therefore an appropriate locus for code to be executed when an object deleted as well as “saved to disk.” You can find out if an object is marked for deletion with isDeleted.
Special Considerations
You cannot attempt to resurrect a deleted object in didSave.