我已经创建了5个NSDictionary。我将它们存储在NSArray中。我需要获取存储在NSDictionaries中的值。怎么办?我试过拨打[[array objectAtIndex:i]objectForKey:key1]
。 但是,它通过提供消息而崩溃:发送到实例的无法识别的选择器 如何获取数据?如何使用字典存储在NSArray中的键来获取NSDictionary的值?
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的代码,以及确切的错误消息。 – 2010-04-07 11:16:43
它也可能有助于将调用分解为中间步骤(例如,将字典从数组中取出到一个临时变量中,如果这不会立即引发问题,您可能会发现在调试器 – philsquared 2010-04-07 11:23:11
我也发布了我的程序。谢谢。 – 2010-04-07 11:31:51