每次使用以下语句更新设备位置时,我都会调用一个方法:
好奇我为什么在这里从这个PrevSpeedDic获得SIGABRT信号:
if (DriveInfoDic != nil) {
PrevSpeedDic = [DriveInfoDic objectForKey: @"speed"];
} else {
DriveInfoDic = [[NSDictionary alloc] init];
}
但是,当我将其移到上面的声明之上时,它应该正常工作。我的变量定义正确,或者在任何情况下都不起作用。
DriveInfoDic = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithDouble:speedMPH], @"speed", nil];
答案 0 :(得分:3)
默认情况下,局部变量未初始化为0(nil)。如果你之前没有设置DriveInfoDic,那么它将占用第一个分支并崩溃。