检查ID NSNumber为空

时间:2013-02-17 12:14:37

标签: iphone xcode

这是我的代码:

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)正确检查?

1 个答案:

答案 0 :(得分:1)

看起来userLatPositionNSNull,而不是nil。请注意,NSNull不等于nil,它是一个占位符,用于指示nil值,该值可以存储在NSDictionaryNSArray等容器中,不接受nil值。

支票看起来像这样:

if(userLatPosition && userLatPosition != [NSNull null])
{
}

另请参阅:Using NSNull