At the moment, our
Hero entity is represented by instances of the class
NSManagedObject. Thanks to key value coding, we have the ability to create entire data models without ever having to create a class specifically designed just to hold our application's data.
There are some drawbacks to this approach, however. For one thing, when using key value coding with managed objects, we use
NSString constants to represent our attributes in code, but these constants are not checked in any way by the compiler. If we mistype the name of an attribute, the compiler won't catch it. It can also be a little tedious, having to use
setValue:forKey: all over the place instead of just using properties and dot notation. ...