Эффективный способ собрать все списки массивов в один массив? - PullRequest
0 голосов
/ 08 июня 2010

Если у меня есть лист, который структурирован так:

Root              Array
   Item 0         Dictionary
     City         String     New York
     People       Array
        Item 0    String     Steve
        Item 1    String     Paul
        Item 2    String     Fabio
        Item 3    String     David
        Item 4    String     Penny
   Item 1         Dictionary
     City         String     London
     People       Array
        Item 0    String     Linda
        Item 1    String     Rachel
        Item 2    String     Jessica
        Item 3    String     Lou
   Item 2         Dictionary
     City         String     Barcelona
     People       Array
        Item 0    String     Edward
        Item 1    String     Juan
        Item 2    String     Maria

Тогда каков самый эффективный способ собрать все имена людей в один большой NSArray?

1 Ответ

4 голосов
/ 08 июня 2010

Самый короткий, но, вероятно, очень неэффективный способ:

return [thePlistArray valueForKeyPath:@"@distinctUnionOfArrays.People"];

нормальный способ:

NSMutableArray* resArr = [NSMutableArray array];
for (NSDictionary* record in thePlistArray) {
   [resArr addObjectsFromArray:[record objectForKey:@"People"]];
}
return resArr;
...