I'm not sure how else to note this, but in Xcode 9+ NSManagedObject entities are (by default) set to have their class autogenerated. This is a departure from the way things were done (manual generation via the Editor > Create NSManagedObject Subclass ... as noted in the Managed Object Subclasses section of chapter 1 of the book. It might be worth it to note the difference and how to set the automatic code generation to none.