2014-10-04 38 views
0

我一直在尋找這個,但未能找到合適的解決方案。是否有可能爲每個存在於數組對象數組?可以說我有一個數組「水果」使用目標c中的for循環爲陣列中的每個對象創建一個數組

NSMutableArray *fruits=[[NSMutableArray alloc]init]; 
    [fruits addObject:@"apple"]; 
    [fruits addObject:@"banana"]; 
    [fruits addObject:@"mango"]; 

現在有在我的數組三個對象。是否可以爲數組'fruit'中的每個對象創建一個數組。

我可以這樣做

for(int i=0;i<fruits.count;i++){ 
    NSMutableArray *fruits_%d=[[NSMutableArray alloc]init]; 
    } 

我知道這是一個錯誤。有什麼辦法可以做到嗎?

在此先感謝。

+1

什麼你想在這些數組做什麼?很可能你想創建這些新陣列的數組。 – rmaddy 2014-10-04 21:39:50

+1

這聽起來像你可能正在尋找一個NSDictionary - 你可以存儲數組與水果名稱作爲鍵 – Paulw11 2014-10-04 21:41:03

+0

可以說,我有一個名爲帳戶的數組,然後我想存儲所有這些帳戶的細節創建的另一個數組。 @rmaddy – 2014-10-04 21:45:41

回答

2

你可以使用,而不是一本字典:

NSMutableDictionary *fruitDict=[[NSMutableDictionary alloc]init]; 
[fruitDict setObject:[[NSMutableArray alloc]init] forKey:@"apple"]; 
[fruitDict setObject:[[NSMutableArray alloc]init] forKey:@"banana"]; 
[fruitDict setObject:[[NSMutableArray alloc]init] forKey:@"mango"]; 

還是有點更清晰的語法:

NSMutableArray *fruits=[[NSMutableArray alloc]init]; 
[fruits addObject:@"apple"]; 
[fruits addObject:@"banana"]; 
[fruits addObject:@"mango"]; 

NSMutableDictionary *fruitDict = [[NSMutableDictionary alloc] init]; 

for (NSString *fruit in fruits) 
{ 
    [fruitDict setObject:[[NSMutableArray alloc]init] forKey:fruit]; 
} 

然後,當你想要檢索數組:

NSMutableArray *myArray = fruitDict[@"banana"] 

上面的代碼將產生香蕉物品的陣列。

+0

而不是forKey:@「apple」,我可以使用forKey:[fruits objectatindex:0]; ? – 2014-10-04 21:47:59

+0

@ T_77不,那會創建一個只有一個鍵的字典,「@」apple「'。儘管你可以使用你的for(int i = 0; i Undo 2014-10-04 21:50:29

+0

你......那是我在想什麼。讓我檢查! – 2014-10-04 21:53:01

1

我不知道你想要什麼,但也許你可以做這樣的事情:

NSMutableArray *fruits = [[NSMutableArray alloc] init]; 
[fruits addObject:@"apple"]; 
[fruits addObject:@"banana"]; 
[fruits addObject:@"mango"]; 

NSMutableArray *arrayOfFruits = [[NSMutableArray alloc] initWithCapacity:fruits.count]; 
for (int i = 0; i < fruits.count; i++) { 
    [arrayOfFruits addObject:@[fruits[i]]]; 
} 
相關問題