在运行时识别类的名称

时间:2011-09-24 15:13:56

标签: objective-c cocoa-touch class

所以我的应用程序遇到了一个相当复杂的问题。 我有大约40个UIImageView对象,当不同的堆叠时,需要在不同的位置显示(如果img2 == NO,EX img 1需要取img 2位置。)

我要做的是使用“for循环”并运行我检查图像是否被选中的所有布尔值。 我很好奇是否可以像这样调用变量

-(IBAction) button:(id) sender{
    scrollView.hidden = YES;
    NSInteger i = 1;
    (@"imagenumber%d", i) = [[UIImageView alloc] initWithFrame: CGRectMake (28, 230, 86, 26)];
    [[imagenumber(@"%d", i)] setImage:[UIImage imageNamed:@"csa.jpg"]];
    [self.view addSubview: [imagenumber(@"%d", i)]];}   
}

其中@“imagenumber%d”是我的NSImageView,而我的数字是1-40。

如果这令人困惑,我很抱歉,我真的很感激任何有关这个问题的帮助,因为我似乎无法理解并且已经在这个问题上工作了几个星期。

2 个答案:

答案 0 :(得分:0)

将视图放在NSMutableArray中 - 您可以通过索引访问那些元素,使用快速枚举,......例如:

UIImageView *image = [[UIImageView alloc] ...
[myMutableArray addObject:image];
// ...

答案 1 :(得分:0)

为了欢闹,您还可以将它们放在内部数组中并使用指针算法。 (对于那些感兴趣的人来说,可能会在幕后发生更快的枚举)

UIImageView * imageArray[40];

...

for(UIImageView * this = imageArray; this; this++)
{
    this = [[UIImageView alloc] initWithFrame: CGRectMake (28, 230, 86, 26)];
    ...
}