Как ссылаться на свойства экземпляра во время выполнения в Objective-C - PullRequest
0 голосов
/ 28 марта 2011

Разработчик Flash Actionscript может сделать трюк, чтобы ссылаться на свойства экземпляра во время выполнения. Мне было интересно, существует ли что-нибудь подобное в Objective-C

В ActionScript мы можем сделать:

var thisObject;
for (var i=0; i<10; i++) {
   thisObject = this["myInstanceProperty"+i];
   thisObject.doSomething();
}

Я думал, что в Objective-C будет метод, подобный этому, но я нигде не могу найти ничего упомянутого. Я ищу что-то вроде:

for (int i=0; i<10; i++) {
  NSString *buttonName = [NSString stringWithFormat:@"button_%i", i];
  id *thisButton = [self instancePropertyWithStringName:buttonName];
  thisButton.label = @"button %i";
}

Ты видишь, к чему я клоню? У меня есть xib, связывающий представления с IBOutlets, и я хотел бы сослаться на эти IBOutlets из цикла for, чтобы я мог динамически добавлять к ним свойства во время выполнения.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 28 марта 2011

Вы можете использовать следующее, если объект self соответствует NSKeyValueCoding - что он делает по умолчанию для своих переменных и свойств экземпляра.

NSButton *button = [self valueForKey:buttonName];
1 голос
/ 28 марта 2011
...