我无法在计算出的属性上调用valueforkey方法。例如:
@interface Value : NSObject
@property(nonatomic,getter = toString,readonly)NSString *stringVal;
-(NSString*) toString;
@end
当我调用[instanceOfValueClass valueForKey:@“stringVal”]时,它说它不符合键值。确切的消息是:
[valueForUndefinedKey:]:此类与键stringVal的键值编码不兼容。
键值编码对衍生属性有效吗?
谢谢
最佳答案
您已将getter方法设置为toString
,因此
[instanceOfValueClass valueForKey:@"toString"]
应该管用。请注意,您不必“重命名” getter方法,您可以
覆盖默认的getter:
@property(nonatomic,readonly) NSString *stringVal;
- (NSString *)stringVal
{
NSString *s = ...; // compute property value
return s;
}
然后
instance.stringVal
和[instance valueForKey:@"stringVal"]
可以使用“相同的键”。