如何通过生成的实例名称访问对象?

时间:2012-10-28 18:17:01

标签: objective-c

我有一个包含许多视图的xib文件。他们的IBOutlet名为view1view2view3,依此类推,我希望在循环中访问它们。是否可以在Objective-C中执行此操作?

我知道在ActionScript中你可以像这样生成一个对象的名字:["view"+num]

4 个答案:

答案 0 :(得分:3)

将它们放入IBOutletCollection中。这是一个数组,您可以在界面构建器中填充它并迭代它。

答案 1 :(得分:2)

不是命名它们,而是为它们分配标签(0 ... 10),然后你可以用viewWithTag:将它们从父视图中拉出来。

答案 2 :(得分:1)

使用键值编码。如果假设我有view1 ..查看10,那么我会像这样使用它;

for(int i=0 i< 10; i++){
  UIView *eachView = [self valueForKey:[NSString stringWithFormat:@"view%d", i]];
}

我希望它适合你。

答案 3 :(得分:0)

另一种可以实现此目的的方法是使用NSDictionaryOfVariableBindings

NSArray *views = [NSDictionaryOfVariableBindings(view1, view2, view3) allObjects];
for (UIView *item in views)
    do something with item;