Имя свойства динамического объекта в задаче C - PullRequest
3 голосов
/ 20 февраля 2012

Я пытаюсь получить доступ к свойству объекта, используя динамическое имя ... это возможно?

как в JavaScript:

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

идея состоит в том, чтобы получить доступ appr.templates.bar

Ответы [ 2 ]

5 голосов
/ 20 февраля 2012

Вы можете использовать valueForKey: для этой цели.

Как это:

NSString *foo = @"bar";

[appr.templates valueForKey: foo]
4 голосов
/ 20 февраля 2012

Это можно сделать с помощью кодирования значения ключа или KVC, см. Метод -valueForKeyPath:.Например:

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

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