这是我的代码:
if (userLatPosition != nil) {
CLLocation *userLocation = [[CLLocation alloc] initWithLatitude:[userLatPosition floatValue] longitude:[userLongPosition floatValue]];
[self getLocationTextForUserIndex:j withLocation:userLocation];
}
当它即将运行时,这就是我在userLatPosition中看到的:
userLatPosition = (NSNumber *) 0x02ab6678 (null)
有人会认为if语句应该是false并且它会跳过if但是由于某种原因它会进入if行......
有人知道为什么吗?什么是NSNumbers中的(null)正确检查?
答案 0 :(得分:1)
看起来userLatPosition
是NSNull
,而不是nil
。请注意,NSNull
不等于nil
,它是一个占位符,用于指示nil
值,该值可以存储在NSDictionary
或NSArray
等容器中,不接受nil
值。
支票看起来像这样:
if(userLatPosition && userLatPosition != [NSNull null])
{
}
另请参阅:Using NSNull