Iphone 将所有plist阵列合并为一个阵列的有效方法?
如果我有一个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
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;