2011-05-18 104 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

相關問題