我有这个应用程序,我在其中填充 NSDictionary,然后对字典进行计算。
tmp = nil;
tmp = [singleEvent objectForKey:@"start_date"];
if(tmp == nil)
{
startDate = [dateFormatter dateFromString:@"1800/1/1 12:00:00"];
}
else
{
startDate = [dateFormatter dateFromString:tmp];
}
tmp 是一个 NSString 对象,而 singleEvent 是一个 NSDictionary。两者都在其他地方声明。为简单起见,我没有包含那部分代码。
字典的键“start_date”有时会包含字符串格式的日期,有时会为空。
我已经处理了它将为空的情况,但代码从未到达该行。我通过调试发现,即使 tmp 为空,执行也会转到其他部分。
在调试模式下,我在观看 tmp 时得到这个:
tmp = (NSNull *)
但还有其他块被击中。 所以我总是得到一个空指针异常。