As the title states: is it normal to make subclasses of NSManagedObjects? When you have e.g. Item, would you use the NSManagedObject with key/value or have a Item class?
And if you use a subclass how would you send the an Item instance to a common Core Data “DAO” class? You can’t use the initializer method init, and since you don’t have the context outside the DAO how would you solve it?
It’s actually quite common to subclass NSManagedObject. Then you set that class to be the Class of your Entity in the Model Editor. You can then define properties any use those instead of KVC. See this tutorial, especially the Autogenerating Model Files part.