Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 将所有plist阵列合并为一个阵列的有效方法?_Iphone_Objective C_Nsarray_Plist - Fatal编程技术网

Iphone 将所有plist阵列合并为一个阵列的有效方法?

Iphone 将所有plist阵列合并为一个阵列的有效方法?,iphone,objective-c,nsarray,plist,Iphone,Objective C,Nsarray,Plist,如果我有一个plist,其结构如下: Root Array Item 0 Dictionary City String New York People Array Item 0 String Steve Item 1 String Paul Item 2 String Fabio Item

如果我有一个plist,其结构如下:

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

那么,将所有人的名字放在一个大的N数组中最有效的方法是什么?

最短但可能效率很低的方法:

return [thePlistArray valueForKeyPath:@"@distinctUnionOfArrays.People"];
通常的方式是:

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

最短但可能效率很低的方法:

return [thePlistArray valueForKeyPath:@"@distinctUnionOfArrays.People"];
通常的方式是:

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