Динамически генерируемый вызов свойства / функции в цели C - PullRequest
3 голосов
/ 05 августа 2010

Возможно ли динамическое построение вызова свойства или функции? У меня есть набор представлений, которые я хочу сделать таким же образом. Так что, если часть моего кода похожа на это

self.ViewName.hidden = NO;

и я хочу использовать переменную для имени представления, есть ли способ сделать это, что-то вроде

self {var} .hidden = NO;

Где 'var' - NSString имени представления и вычисляется во время выполнения? Я знаю, что это не будет работать с угловыми скобками, просто чтобы показать, как я пытаюсь построить ссылку на свойство.

Спасибо

Ответы [ 3 ]

2 голосов
/ 05 августа 2010

Вы можете динамически получить селектор во время выполнения, используя функцию NSSelectorFromString.Поэтому, если вы хотите получить viewName на основе строки, вы должны использовать

[[self performSelector:NSSelectorFromString(@"ViewName")] setHidden:NO];
0 голосов
/ 06 августа 2010

Если у вас есть несколько представлений, вы должны поместить их в массив и получить доступ к каждому элементу массива отдельно.

NSMutableArray * views...
[[views objectAtIndex:i] setHidden:NO];
0 голосов
/ 05 августа 2010

Вы можете использовать setValue:forKeyPath: метод:

NSString* path = [NSString stringWithFormat:@"%@.hidden", viewName];
[self setValue:[NSNumber numberWithBool:YES] forKeyPath:path];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...