语法help - 作为对象名称的变量

时间:2011-10-29 18:26:08

标签: iphone objective-c ios xcode

  

可能重复:
  create multiple variables based on an int count
  Objective C Equivalent of PHP's “Variable Variables”

如何使用变量作为名称来创建和引用对象?

示例 -

    for (int i=1; i<7; i++) {
       CGRect ("myRectNum & i") = myImageView.bounds; 
    }

 ("myRectNum & 5").height  etc ..

1 个答案:

答案 0 :(得分:2)

在Objective-C语言中没有这样的东西,一般来说它不是一种非常实用的引用数据的方法(如果你输入一个字符串怎么办?编译器将无法捕获它)。我不会再猜测你真正想要做什么(这取决于你应用程序的这一部分的目标),但是你可以使用NSMutableDictionary来获得类似的效果:

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
for (int i = 0; i < 7; i++)
{
    NSString *key = [NSString stringWithFormat:@"myRectNum & %d", i];
    NSValue *value = [NSValue valueWithCGRect:myImageView.bounds];
    [dict setObject:value forKey:key];
}

然后再次取回值:

NSValue *value = [dict objectForKey:@"myRectNum & 5"];
CGRect bounds = [value CGRectValue];
NSLog(@"height = %f", bounds.size.height);