2013-05-03 46 views
0

在IOS,我有這樣的數組:轉換穆蒂維的NSMutableArray成單維的NSMutableArray

multiDimensionArray = [NSMutableArray arrayWithObjects:[NSMutableArray arrayWithObjects:@"one",@"two", nil],[NSMutableArray arrayWithObjects:@"three", nil],[NSMutableArray arrayWithObjects:@"four", nil],nil]; 

然後,我需要將其轉換爲:

singleDimensionArray = [NSMutableArray arrayWithObjects:[multiDimensionArray objectAtIndex:0], nil]; 

非但沒有兩個對象(的@ 「one」和@「two」)我得到1個對象(@「one,two」)。我怎樣才能把它變成2個物體?謝謝!

+0

你的代碼是正確的,請檢查您的調試。上面的代碼將產生兩個對象。 – 2013-05-03 14:18:27

+0

我沒有nslog計數是1. – sooon 2013-05-03 14:23:30

回答

0

你的新數組只包含一個包含2個額外對象的數組。所以現在做同樣的事情來創建2個對象的新數組。

twoObjectsArray = [singleDimensionArray objectAtIndex:0]; 

for (NSString *string in twoObjectsArray) { 
    NSLog(@"%@,string); 
} 
+0

嗨MarkM:你的方式有效。但我不明白什麼是不同的?你是否在意更詳細的解釋?謝謝! – sooon 2013-05-03 14:27:53

+0

您的NSLog可能會顯示一個數組的結果,其中包含2個對象,而不是1.由於您正在查看數組,因此結果將是NSLog的1,但是1結果包含2個對象。 – 2013-05-03 14:33:26

0
NSMutableArray *array1=[[NSMutableArray alloc] initWithObjects:@"One",@"Two", nil]; 

NSMutableArray *array2 = [[NSMutableArray alloc] initWithObjects:@"Three",@"Four" ,nil]; 

NSMutableArray *array3 =[[NSMutableArray alloc] initWithObjects:array1,array2, nil]; 

NSMutableArray *array4=[[NSMutableArray alloc] init]; 

for (NSMutableArray *array in array3) 
{ 
    for (int i=0; i<[array count]; i++) 
    { 
     [array4 addObject:[array objectAtIndex:i]]; 
    } 
} 

NSLog(@"Final Array = %@",array4); 

array3=nil; 
array2=nil; 
array1=nil;