2012-02-19 68 views
0

NSDictionarys獲取特定數據字段我有一個嵌套的詞典數據數組是這樣的:從嵌套在NSArray中

[{ 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

您是否設法使其工作? – moxy 2012-02-19 21:01:24

+0

我已經採用了你的方法,雖然它確實不那麼簡潔。 – 2012-02-20 04:54:38

回答

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值的數組,在所有情況下都不需要鍵值編碼(除非您想在陣列中添加其他內容)