【发布时间】:2010-04-07 11:08:00
【问题描述】:
我创建了 5 个 NSDictionary。我将它们存储在 NSArray 中。我需要获取存储在 NSDictionaries 中的值。怎么可能呢?
我试着打电话给[[array objectAtIndex:i]objectForKey:key1]。
但是,它通过给出消息而崩溃:发送到实例的无法识别的选择器
如何获取数据?
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 的代码以及确切的错误消息可能会有所帮助。
-
这也可能有助于将调用分解为中间步骤(例如,将字典从数组中取出到一个临时变量中。如果这不会立即导致您遇到问题,您可能会发现它更容易此时在调试器中单步执行。
-
我也发布了我的程序。谢谢。
标签: objective-c cocoa-touch nsarray nsdictionary