0

我有一个像下面这样的结构化数组

 (
        {
        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 键的值(让我们以 id=6 为例),我怎样才能获得它的父字典或更准确地说是名称键的值(在本例中为 B)。

我试过使用谓词字符串,但问题是父字典也有一个名为 id 的键,所以我得到了错误的结果。

编辑: id 键是唯一的(并且第一个字典中元素的 id 也没有必要比具有更高索引的字典中的元素具有更低的整数值)

4

1 回答 1

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;                
        }
    }
}
于 2012-09-25T10:48:24.240 回答