I could not find the documentation, but I am sure that it is still needed.
Core Data has an external interface (represented by the context of the managed entity) and a persistent backend ("storage"). A persistent backend is usually a file, but it can just be inside the memory for NSInMemoryStoreType .
For all Core Data functions to work, the two parts must be separated from each other, and you click on the backend (persistent data) from the external interface (pending changes) using the save operation.
Note that for the same storage (backend) there can be several contexts of managed objects (frontends), and each of them has different pending changes. Note that there are methods such as hasChanges and NSUndoManager for each managed object context. It still works with storage in memory.
Some information is also here.
source share