Я создал 5 NSDictionary's. Я сохранил их в NSArray. Мне нужно получить значения, хранящиеся в NSDictionaries. Как это можно сделать? Я пробовал звонить [[array objectAtIndex:i]objectForKey:key1]
. Но, это сбой, отправив сообщение: непризнанный селектор отправлен в экземпляр Как получить данные?Как получить значения NSDictionary, используя ключи, в которых словари хранятся в NSArray?
NSDictionary *enemy1, *enemy2;
NSArray *enemyData;
-(void)viewDidLoad
{
enemy1 = [NSDictionary dictionaryWithObjectsAndKeys:@"3", @"Countdown speed", @"3", @"Enemy gun draw", @"1", @"Enemy gun fire", @"0.8", @"Enemy hit probability", @"1", @"Enemy re-fire interval", nil];
enemy2 = [NSDictionary dictionaryWithObjectsAndKeys:@"3", @"Countdown speed", @"2.8", @"Enemy gun draw", @"0.9", @"Enemy gun fire", @"0.8", @"Enemy hit probability", @"0.9", @"Enemy re-fire interval", nil];
enemyData = [NSArray arrayWithObjects:@"enemy1", @"enemy2", nil];
NSLog(@"Value in Array: %f", [ [enemyData objectAtIndex:1]objectForKey:@"Enemy gun draw"]);
}
Это правильный метод; поэтому, если он не работает, что-то другое не так (например, возможно, объект, который вы извлекаете, на самом деле не является NSDictionary). Это может помочь опубликовать код, который вы используете для создания, хранения и доступа к NSDictionary, а также точное сообщение об ошибке. –
Это также может помочь разбить вызов на промежуточные этапы (например, вывести словарь из массива во временную переменную. Если это не сразу приведет вас к этой проблеме, вам может быть проще перейти в отладчик в этот пункт. – philsquared
Я отправил свою программу также. Спасибо. –