Reputation: 4016
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?
Upvotes: 1
Views: 3873
Reputation:
There are quite a bunch of approaches of taking advantage of KVC - perhaps the simplest is to just have an instance variable in your class with the name of the key you want to use, i. e.:
@interface Engine: NSObject {
NSNumber *horsePower;
// etc.
}
Upvotes: 3
Reputation: 95315
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.
Upvotes: 4