2012-09-25 2 views
0

나는 (하자 나는 사전 중 하나의 ID 키의 값을 알고있는 점을 감안(목적 C)

(
     { 
     id = 0; 
     name = "A"; 
     tables =   (
         { 
       comment = ""; 
       id = 0; 
       name = "T1"; 
      }, 
         { 
       comment = ""; 
       id = 1; 
       name = "T2"; 
      }, 
         { 
       comment = ""; 
       id = 4; 
       name = "T3"; 
      } 
     ); 
    }, 
     { 
     id = 1; 
     name = "B"; 
     tables =   (
         { 
       comment = ""; 
       id = 5; 
       name = "T1"; 
      }, 
         { 
       comment = ""; 
       id = 6; 
       name = "T2"; 
      } 
     ); 
    } 
) 

아래와 같은 구조화 된 배열을 id = 6), 부모 사전을 얻거나 더 정확하게 이름 키 (이 경우 B)의 값을 얻으려면 어떻게해야합니까?

술어 문자열을 사용해 보았지만 부모 사전에 id라는 키가 있으므로 문제가 발생합니다.

EDIT : ID 키는 고유 한 (그리고 제 사전 요소의 ID가 높은 인덱스와 사전의 것보다 낮은 intiger 값을 가질 것이 필요하지 않다)

+0

모든 사전에서 키가 고유합니까? 그렇지 않다면, 당신은 하나의 사전을 찾는 것이 아니라 복수의 사전을 찾는 것입니다. – waldrumpus

+0

예 그들은 고유합니다. – smihael

답변

0

이 사용해 어디 어레이은 구조화 된 배열입니다

NSDictionary *parentDict=[[NSDictionary alloc]initWithDictionary:nil]; 
NSString *name=[[NSString alloc]init]; 
NSArray *table=[[NSArray alloc]initWithArray:nil]; 
for (NSDictionary * dict in array) { 
    table=[dict objectForKey:@"tables"]; 
    for (NSDictionary *childDict in table) { 
     if ([[childDict objectForKey:@"id"]isEqualToString:@"6"]) { 
      //if your id value is int then use ==6 to check 
      parentDict=dict; 
      name=[dict objectForKey:@"name"]; 
      return;     
     } 
    } 
}