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"}]

を使用してみましたが、NSDictionary で for カテゴリを[myArray valueForKey @"@customFilterForFoo"]実装しましたが、最終的にはcustomFilterForFoo*** 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 に答える