0

我有一个嵌套字典数据的数组,如下所示:

    [{ 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 上实现了customFilterForFoofor 类别,但这最终得到*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<__NSCFArray 0x6b81a10> valueForUndefinedKey:]: this class is not key value coding-compliant for the key customFilterForFoo.'

我怎么能做这样的事情?谢谢!

4

1 回答 1

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 值的数组,因此在所有情况下都不需要键值编码(除非您想在数组中添加其他内容)

于 2012-02-19T09:00:21.007 回答