2013-07-11 42 views
0

自學後(主要來自本網站),我終於無法找到問題的解決方案。
我想用獨特的名字輕鬆創建100萬個NSMutableArrays。我的意思是,沒有硬編碼所有的單個陣列。
我想要做的是這樣的:輕鬆創建100萬個具有獨特名稱的NSMutableArrays

for (int i = 1; i <= 1000000; i++) { 
    NSString *arrayNumber = [NSString stringWithFormat:@"%d", i]; 
    NSString *millionArrayNumber = @"millionArrayNumber"; 
    NSString *arrayName = [millionArrayNumber stringByAppendingString:arrayNumber]; 
    NSMutableArray *[NSString arrayName] = [NSMutableArray array]; 
} 

我能理解爲什麼這不工作,但我想不出這樣做的另一種方式。我想這可能是可能使用類似的東西:如果我更改代碼以

[button setTag = 1]; 

for (int i = 1; i <= 1000000; i++) {  
    NSMutableArray *millionArray = [NSMutableArray array]; 
    [millionArray setTag: i]; 
} 

然後我會使用標籤來控制陣列,你可以用按鈕的功能。這雖然不適用於數組。
我希望我沒有模棱兩可。

+0

如何'NSMutableArray * [NSString arrayName] = [NSMutableArray array]; '這個代碼工作?不顯示錯誤? – Dilip

+0

是的,它拋出了一個錯誤。這是我**想要**做的。 – alicooke

+0

@ user2573287如何製作一個'NSMutableArray'並將其他1000000個'NSMutableArrays'添加到它?這樣你就可以得到一個「唯一的名字」:它在數組中的索引。 – 2013-07-11 17:56:06

回答

1

我不知道如何將字符串轉換爲文字代碼,但是我認爲這是可能的。

但是,您總是可以將一百萬個數組踢到一個NSMutableDictionary,併爲每個數組提供唯一的鍵名稱。

NSMutableDictionary *arrayStore = [NSMutableDictionary dictionary]; 
for (int i = 1; i <= 1000000; i++) { 
    NSString *arrayNumber = [NSString stringWithFormat:@"%d", i]; 
    NSString *millionArrayNumber = @"millionArrayNumber"; 
    NSString *arrayName = [millionArrayNumber stringByAppendingString:arrayNumber]; 
    arrayStore[arrayName] = [NSMutableArray array]; 
} 

,當然也爲了得到你想要的以後,你只需要使用任何陣列:

NSMutableArray *uniqueArray = arrayStore[arrayName]; 

編輯:不知道,如果你想保留號碼作爲唯一密鑰,這在下面的評論中提到,但如果是的話,你可以用這個做到這一點:

NSMutableDictionary *arrayStore = [NSMutableDictionary dictionary]; 
for (int i = 1; i <= 1000000; i++) { 
    arrayStore[@(i)] = [NSMutableArray array]; 
} 

而且隨着訪問(例如,序列號100):

NSMutableArray *uniqueArray = arrayStore[@100]; 
+0

同樣,你可以有一個NSMutableArray存儲所有其他數組,並將字符串轉換爲數字,然後將數字轉換爲字符串來訪問它。當然,還有其他的考慮,比如記憶。曾經想過使用其他持久性存儲,如數據庫? SQLite免費使用iOS。 –

+0

'Array'ception。我喜歡。我認爲它也會起作用。謝謝你的投入。 – alicooke

+0

@Travis我只是想說setObject:forKey:明確地將NSString作爲關鍵字,但首先查找它並意識到它需要一個符合NSCopying協議的id,因此必須是一個「對象」。 NSNumber因此適合作爲一個關鍵。剛剛學到了一些新的東西:) +1 – pnizzle