【发布时间】:2012-07-15 12:37:04
【问题描述】:
尝试使用键值编码在我的对象上设置值:
[engine setValue:[NSNumber numberWithInt:horsePower]
forKey:@"horsePower"];
导致错误:
[<Slant6 0x7fbc61c15c40> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key horsePower.
我需要做什么才能使engine 键值编码兼容?
【问题讨论】:
-
现在我把水晶球丢在哪里了……
-
除非您告诉我们您的引擎对象的类别,否则我们无能为力。
-
@ThorstenKarrer 虽然总的来说,对于新手来说发布他们的实际代码是一种很好的建议,但这里不需要。
-
@H2CO3 取决于...例如,如果 OP 尝试在 NSDictionary 类的对象上调用 setValue:forKey:,则比添加 ivar 更好的解决方案是更改类到 NSMutableDictionary。此外,在这种情况下,问题将是重复的。
-
@H2CO3:不过可能会有很多问题。
engine实际上可能与horsePower兼容 KVC,但内存管理问题可能会导致在错误对象上进行查找,等等。
标签: objective-c cocoa key-value-coding