我已經創建了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