我有一个包含嵌套字典数据的数组,如下所示:
[{ link : [
{ $ref: "foo", $href: "first_foo"},
{ $ref: "bar", $href: "barrrrrrr"},
{ $ref: "quz", $href: "quzzzzzzz"}]},
{ link : [
{ $ref: "foo", $href: "second_foo"},
{ $ref: "bar", $href: "barrrrrrr"},
{ $ref: "quz", $href: "quzzzzzzz"}]}]
我想挑选每本词典的foo
。想要的结果如下:
[{ foo: "first_foo"}, { foo: "second_foo"}]
我已尝试使用[myArray valueForKey @"@customFilterForFoo"]
,并在NSDictionary上实施customFilterForFoo
类别,但最终会以*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<__NSCFArray 0x6b81a10> valueForUndefinedKey:]: this class is not key value coding-compliant for the key customFilterForFoo.'
我该怎么做这样的事情?谢谢!
答案 0 :(得分:0)
你应该在你的词典数组中循环,然后在每个词典中搜索你的foo值:
NSMutableArray *arrayOfFooValues = [[NSMutableArray alloc] init];
for (NSDictionary *aDictionary in myArray) {
if ([aDictionary valueForKey @"foo"]!= nil) {
[arrayOfFooValues addObject:[aDictionary valueForKey @"foo"]];
}
}
如果你想要“想要的结果”,你可以使用setValue:forKey:方法,但由于结果是一个Foo值的数组,因此在所有情况下都不需要键值编码(除非你想在其中添加其他内容)你的阵列)