2011-05-18 70 views
2

是否有可能引用变量与一个字符串和一个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,是有可能吗?

+1

你究竟在做什么? – 2011-05-18 18:16:45

+0

你是否希望将整数转换为字符串?另外,'regString'的类型是'NSString *',像'3'这样的整型常量不能被赋值。 – Mahesh 2011-05-18 18:17:24

+0

我实际上写在你正在谈论的代码标题旁边的括号中:“但它不起作用(很明显的原因)” – JulenissensHjelper 2011-05-18 18:44:49

回答

3

这是一个anti-pattern我叫穷人阵列。更好的方法是使用像数组这样的适当集合,而不是一堆秘密相关的变量。做得对,数组的代码通常会更短,更清晰。

+0

是的,我想我会做一个数组,我最初试图超自定义的“阵列”设置,但我意识到它会只是变得凌乱。 – JulenissensHjelper 2011-05-18 18:42:07

+1

或者只是创建一个简单的类来避免“具有神奇索引的数组”。 – bbum 2011-05-18 19:57:17

1

从我可以推断你试图设置/检索基于值j不同的变量。

你可以使用字典用于此目的:

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

然后检索:

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

这是一个有点冗长,但你可以通过创建一个小班简化它。

+0

这将与使用NSArray相同,它只能容纳NS/UI对象..所以这不会真的有帮助...谢谢反正 – JulenissensHjelper 2011-05-18 18:43:25

相关问题