目标C中的动态对象属性名称

时间:2012-02-20 12:46:44

标签: iphone objective-c cocoa-touch key-value-coding

我正在尝试使用动态名称访问对象的属性......这可能吗?

就像在javascript中一样:

var foo = 'bar';
appr.templates[foo];

想法是访问appr.templates.bar

2 个答案:

答案 0 :(得分:5)

您可以将valueForKey:用于此目的。

像这样:

NSString *foo = @"bar";

[appr.templates valueForKey: foo]

答案 1 :(得分:4)

您可以使用键值编码或KVC执行此操作,请参阅方法-valueForKeyPath:。例如:

@interface Foo
@property(strong) NSString *bar;
@end

// Somewhere in other code, foo is an instance of Foo
NSString *bar = [foo valueForKeyPath:@"bar"];