Search code examples
objective-ccocoakey-value-coding

Why is my object not key value coding-compliant?


Trying to use key-value coding to set a value on my object:

[engine setValue:[NSNumber numberWithInt:horsePower]
          forKey:@"horsePower"];

Causes an error:

[<Slant6 0x7fbc61c15c40> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key horsePower.

What do I need to do to make engine key value coding-compliant?


Solution

  • Make sure whatever class engine belongs to implements a horsePower property, and/or has a horsePower instance variable, and/or manually implements setHorsePower: and horsePower methods.

    You are getting the error because you're trying to set the value of the horsePower key but engine's class does not properly implement a way to set the horsePower key.