I read the links below and am still wondering: Could setting a Core Data attribute (e.g., person.name = @"Matt"
cause a fault to fire?
Absolutely - reading or setting a Core Data attribute can cause a fault to fire. It's easy to see how willRead would cause that (must go to the persistent store to get the data), and the willWrite ones seem to do the same (I could imagine it wants to compare what it's about to write against what is actually there, to determine if there is actually anything to do at the NSPersistentStoreController
level).