If you have a xcdatamodel file, open it, and using the menu: File > New File > Cocoa Class, you will see an extra item: Managed Object Class. This will autogenerate the required header and implementation files for your CoreData entities so you can use the convenience accessors instead of [setValue:forKey:]. Doing this will also update your data model so your entities won’t have NSManagedObject as their class. Instead their class is the corresponding generated class.
The thing is, you won’t see “Managed Object Class” item unless you have opened the xcdatamodel file and it is the front most window.
Naturally I discovered this by accident just as I was about to hand write the last CoreData model class.