是否可以使用字符串和int引用变量?

时间:2011-05-18 18:13:08

标签: iphone objective-c string reference int

是否可以使用字符串和int引用变量,如下所示:

    int number1;

    int j = 1;

    @"number%i", j = 3; //Hope this makes sense..

上面的代码给了我警告并且不起作用,怎么可能这样做。

我也试过这个,但它不起作用(原因很明显):

    int j = 1;

    NSString *refString = [NSString stringWithFormat:@"number%i", j];

    refString = 3;

我真的很挣扎,我知道如何在Javascript中完成,但在Obj-C中没有,是否可能?

2 个答案:

答案 0 :(得分:3)

这是anti-pattern我称之为穷人阵。更好的方法是使用类似数组的正确集合,而不是秘密相关的一堆变量。如果做得好,带阵列的代码通常会更短更清晰。

答案 1 :(得分:1)

据我所知,你试图根据j的值设置/检索不同的变量。

您可以为此目的使用字典:

NSMutableDictionary *numbers = [NSMutableDictionary dictionary];
int j = 1;
[numbers setObject:[NSNumber numberWithInt:3] forKey:[NSNumber numberWithInt:j]];

然后检索:

[[numbers objectForKey:[NSNumber numberWithInt:j]] intValue];

它有点冗长,但您可以通过创建一个小类来简化它。