2015-06-08 3 views
0

Я пытаюсь подсчитать количество словарных ключей в словаре словаря NSDictionary, но прихожу пустым. Значения, которые я хотел бы рассчитать, - это количество словарей в словарях SubDict, которые находятся в каждом словаре Dict1, Dict2, Dict3, которые являются частью словаря theDict. В приведенном ниже примере оно должно быть 9. Как я правильно подсчитаю ключи словаря для детей?Подсчет дочерних ключей NSDictionary

Вот код, который я использовал с структурой NSDictionary.

NSDictionary *keyCount = [theDict objectForKey:@"SubDict"]; 
NSUInteger count = [[keyCount allKeys] count]; 

NSLog(@"%lu", (unsigned long) count); 

возвращает значение 0.

Dict1 =  { 
    SubDict =   { 
     1 = data; 
     2 = data; 
     3 = data; 
     4 = data; 
    }; 
}; 
Dict2 =  { 
    SubDict =   { 
     1 = data; 
     2 = data; 
    }; 
}; 
Dict3 =  { 
    SubDict =   { 
     1 = data; 
     2 = data; 
     3 = data; 
    }; 
}; } 

ответ

2

Если theDict выглядит так, то нет никакого ключа в theDict для "SubDict". Вместо этого есть четыре дочерних словаря, каждый из которых имеет одного ребенка. Поэтому вам нужно аккумулировать счет каждого из них:

int count = 0; 
for (NSDictionary * dict in theDict.allValues) { 
    count += [[dict objectForKey:"SubDict"] count]; 
} 
NSLog(@"total items: %d", count); 
+1

Спасибо, это именно то, что я искал. –

Смежные вопросы