2012-02-19 2 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

+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의 값 배열입니다. 키 값 코딩이 모든 경우에 필요하지는 않습니다 (배열에 다른 것을 추가하지 않는 한)