使用那里的字典存储在NSArray的钥匙怎么能得到的NSDictionary的值?

我已创建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"] ); }

--------------解决方案-------------

要添加字符串@“enemy1”和@“enemy2”到你的阵列,而不是字典。

更正行,如下所示nemyData = [NSArray arrayWithObjects:enemy1, enemy2, nil];你应该是不错的。

请注意,您可能会遇到内存问题,因为你的变量是自动释放,如果你想稍后访问这些文件(我想)你需要保留它们。

除了您提出的问题(这已经回答了),还有与NSLog的格式字符串的问题。 %f是双打,而不是对象。 您需要使用%@格式化任何经NSDictionary中的objectForKey返回:方法。 顺便说一句,你是存储的对象是NSString的。 NSNumbers可能会更好,例如

enemy1 = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt: 3], @"Countdown speed",
[NSNumber numberWithDouble: 1.0], @"Enemy gun fire"...

分类:目标C 时间:2015-03-15 人气:3
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.767 (s). 10 q(s)