valueforkey当对象属性是只读和计算(派生)

我在计算属性时调用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"]都可以使用“相同的密钥”。

链接地址: http://www.djcxy.com/p/19237.html

上一篇: valueforkey when object property is readonly and Calculated(derived)

下一篇: How to check if an app is installed from a web