我有一个包含字典对象的数组。每个字典中的键都是通用的。现在我想获取该键的所有值。我已经通过迭代获得了这些值,但我正在寻找一些直接的方法或完成这项工作的默认方法。
您能帮助我获得一种可以达到目的的默认方法吗?谢谢。
数据结构是这样的:
<array>
<dict>
<key>Match</key>
<string>Football</string>
<key>Stadium</key>
<string>XXXXX</string>
</dict>
<dict>
<key>Match</key>
<string>HOCKY</string>
<key>Stadium</key>
<string>XXXXX</string>
</dict>
</array>
我现在正在这样做:
NSMutableArray * matches = [[NSMutableArray alloc] init];
for (int i = 0; i< myArray.count; i++){
[matches insertObject:[[myArray objectAtIndex:i] objectForKey:@"Match"] atIndex:i];
}
[matchDataArray addObjectsFromArray:matches];
它给了我正确的答案。但我不想进行这种迭代。我想要一个方法,它将从数组的所有索引返回“Match”键的所有值,并立即保存在另一个数组中。新创建的数组将仅包含数组所有索引中的 Match key 的值。
这可能吗??
有一个巧妙的键值编码技巧可以做到这一点:
NSArray *matches = [myArray valueForKey: @"Match"];
这是一个实际的例子:
NSArray *anArray = @[
@{@"aWord" : @"I"},
@{@"aWord" : @"have"},
@{@"aWord" : @"an"},
@{@"aWord" : @"array"},
@{@"aWord" : @"which"},
@{@"aWord" : @"contains"},
@{@"aWord" : @"dictionary"},
@{@"aWord" : @"objects."},
@{@"aWord" : @"Etc."},
];
NSArray *aWordArray = [anArray valueForKey:@"aWord"];
在这最后一行之后,aWordArray
将包含与原始词典数组中的单词顺序相同的单词。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)