2011-02-17 175 views
1

即時嘗試填充XML的UITable,我已經有XML解析並存儲在一個數組中多維數組

前。

array [item0, item1, item2, item3, item4, item5, item6, item7] 

我需要幫助試圖將數組轉換成有2列

array [[item0, item1], [item2, item3], [item4, item5], [item6, item7]] 

任何幫助,將不勝感激 感謝

回答

2

你可以使用的東西數組喜歡這個。

NSMutableArray *rootArray = [NSMutableArray array]; 
for (NSInteger i = 1; i < [items count]; i+=2) { 
    id object1 = [items objectAtIndex:i-1]; 
    id object2 = [items objectAtIndex:i]; 
    [rootArray addObject:[NSArray arrayWithObjects:object1, object2, nil]]; 
} 

這將忽略最後一個對象,如果您的數組中的對象數量不平衡。


編輯,不忽略最後一個單個對象的版本。

NSMutableArray *rootArray = [NSMutableArray array]; 
for (NSInteger i = 0; i < [items count]; i += 2) { 
    id object1 = [items objectAtIndex:i]; 
    id object2 = nil; 
    if (i+1 < [items count]) { 
     object2 = [items objectAtIndex:i+1]; 
    } 
    [rootArray addObject:[NSArray arrayWithObjects:object1, object2, nil]]; 
} 
+0

一些東西不會錯過這個陣列中的最後一個元素,其中'len個%2 == 1'? – corsiKa

+0

它會。但我不知道如何處理最後一個對象。取決於如何在tableview中使用這些對象。 –

+0

+1好答案。 – Ishu

0

化妝結構這樣

NSMutableArray *dictArray=[NSMutableArray alloc] init]; 
      for(int i=0;i<[array count];i=i+2) 
      { 
NSMutableDictionary *dict=[[NSMutableDictionary alloc] init]; 
       [dict setObject:[array objectAtIndex:i] forKey:@"first"]; 
       if([array count]>(i+1)) 
        [dict setObject:[array objectAtIndex:(i+1)] forKey:@"second"]; 
        [dictArray addObject:dict]; 
[dict release]; 
      } 

     [dictArray release]; 
+0

這將給他一個只有「item6」和「item7」的字典。不完全是他想要的。 –

+0

@ fluchtpunkt,好吧,現在我編輯code.check這一個。 – Ishu

+0

這將創建一個在所有字段中都具有相同(如:具有相同值)字典的數組。你有另一個嘗試;) –