访问NSDictionary时的SIGABRT

时间:2011-07-05 20:14:38

标签: objective-c ios nsdictionary

每次使用以下语句更新设备位置时,我都会调用一个方法:

好奇我为什么在这里从这个PrevSpeedDic获得SIGABRT信号:

if (DriveInfoDic != nil) {
    PrevSpeedDic = [DriveInfoDic objectForKey: @"speed"];
} else {
    DriveInfoDic = [[NSDictionary alloc] init];
}

但是,当我将其移到上面的声明之上时,它应该正常工作。我的变量定义正确,或者在任何情况下都不起作用。

  DriveInfoDic = [NSDictionary dictionaryWithObjectsAndKeys:
  [NSNumber numberWithDouble:speedMPH], @"speed", nil];

1 个答案:

答案 0 :(得分:3)

默认情况下,局部变量未初始化为0(nil)。如果你之前没有设置DriveInfoDic,那么它将占用第一个分支并崩溃。