What happens when a fault is "fired"?
2 Answers
When a fault "fires", the persistent data for the entity instance represented by the fault is pulled from the persistent store and the fault is converted into a full instance. If the data for the instance is present in the NSPersistentStoreCoordinator
's row cache, I believe that data is used instead, depending on the time since the data was cached and the value of the stalenessInterval
for the managed object context containing the fault. If the cached data is older than stalenessInterval
, it is fetched from the persistent store even if a cached copy is present.

- 107,306
- 24
- 181
- 206
-
The nomenclature is reversed from what you would expect it to be. In training, I term faults as object "ghost" and faulting as "materializing" until people get the idea. see http://stackoverflow.com/questions/3006347/is-this-a-bug-in-the-documentation-existingobjectwithiderror-or-objectwithid/3007682#3007682 – TechZen Jun 09 '10 at 21:01
The updated NSIncrementalStore documentation actually describes this well. NSIncrementalStore is an interface for writing your own store, the SQLite store we all know and love is basically implementing this.
From the Incremental Store Programming Guide: What is a fault? From the Core Data Programming Guide: Faulting and Uniquing

- 21,123
- 4
- 76
- 83