Мне передают словарь:
aDictionary
Когда я выхожу из системы, словарь имеет следующий формат:
{
value1 = "subValue1 {label=value1, info1=, info2=}";
value2 = "subValue2 {label=value2, info1=, info2=}";
value3 = "subValue3 {label=value2, info1=, info2=}";
}
Мне нужно перебрать словарь, а затем определить, есть ли значение для value3 -> subValue3 -> info2.
Я могу сделать первоначальную итерацию, и я могу сделать подсловарь строки:
"subValue3 {label=value2, info1=, info2=}"
Но когда я пытаюсь использовать его, скажем, чтобы получить количество ключей, я получаю -[subValue3 allKeys]: нераспознанный селектор отправлен экземпляру.
NSArray *keys;
int i, count;
id key, value;
keys = [aDictionary allKeys];
count = [keys count];
for (i = 0; i < count; i++)
{
key = [keys objectAtIndex:i];
value = [aDictionary objectForKey:key];
NSLog (@"Key: %@ for value: %@", key, value);
NSDictionary *subDictionary = [aDictionary objectForKey:key];
if ([key isEqualToString:@"info2"]) {
DLog(@"subDictioanry = %@", subDictionary);
// Everything is fine up to here
NSArray *keys2;
int i2, count2;
id key2, value2;
keys2 = [subDictionary allKeys];
count = [keys2 count];
//
// Right here I get "-[subValue3 allKeys]: unrecognized selector sent to instance"
//
for (i2 = 0; i2 < count2; i2++) {
key2 = [keys2 objectAtIndex:i2];
value = [subDictionary objectForKey:key];
DLog (@"Key: %@ for value: %@", key2, value2);
NSDictionary *subDictionary2 = [subDictionary objectForKey:key2];
DLog(@"subDictionary2 = %@", subDictionary2);
}
}
Вопросы: я не уверен, каков формат этой второй группы значений ("subValue3 {label=value2, info1=, info2=}"). Это набор, массив, словарь? Как мне поместить эту группу в словарь (без сбоев в ключе (?) "subValue3"), чтобы я мог проверить, имеет ли ключ info2 какое-либо значение?
Отказ от ответственности: я знаю, что есть более эффективные способы перебора словаря, я просто пытаюсь быть максимально ясным. Я уверен, что мне не хватает чего-то базового, но я не вижу ответа в документах Apple по итерации или NSDictionary и не нахожу ничего о формате во второй группе. Спасибо!