Flash Actionscript开发人员可以在运行时引用实例属性。我想知道在Objective-C中是否存在类似的东西
在动作中我们可以做到:
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,我想在for循环中引用那些IBOutlets,所以我可以在运行时动态地添加属性。
有什么想法吗?
答案 0 :(得分:2)
如果self
对象符合NSKeyValueCoding
- 您默认为其实例变量和属性执行此操作,则可以使用以下内容。
NSButton *button = [self valueForKey:buttonName];
答案 1 :(得分:1)
听起来你正在寻找Key-Value Coding Guide。