/ / Pesquisando dentro de subsubdictionaries de uma matriz para retornar o dicionário pai (Objective C) - objective-c, ios, nsmutablearray

Pesquisando dentro de subsubdictionaries de uma matriz para retornar o dicionário pai (Objective C) - objective-c, ios, nsmutablearray

Eu tenho uma matriz estruturada como a abaixo

 (
{
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";
}
);
}
)

Dado que eu sei o valor da chave id de um dos dicionários (vamos tomar id = 6), como posso obter seu dicionário pai ou ser mais preciso o valor da chave do nome (neste caso B).

Eu tentei usar cadeias de predicados, mas o problema é que o dicionário pai também tem uma chave chamada id, então eu recebo os resultados errados.

EDIT: id chaves são exclusivas (e também não é necessário que os ids dos elementos no primeiro dicionário tenham valores intiger inferiores aos dos dicionários com índices mais altos)

Respostas:

0 para resposta № 1

Tente isso, onde array é o seu array estruturado

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;
}
}
}