2011-02-17 4 views
1

им пытаются заполнить UITable с XML, у меня уже есть 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

будет. Но я не знаю, что делать с последним объектом. Зависит от того, как объекты будут использоваться в представлении таблицы. –

+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, теперь я редактирую код. – Ishu

+0

это создаст массив, который имеет одинаковый (как и в: имеет одинаковые значения) словарь во всех полях. У вас есть еще одна попытка;) –

Смежные вопросы