0

这是我的代码:

if (userLatPosition != nil) {
    CLLocation *userLocation = [[CLLocation alloc] initWithLatitude:[userLatPosition floatValue] longitude:[userLongPosition floatValue]];
    [self getLocationTextForUserIndex:j withLocation:userLocation];
}

当它即将运行时,这就是我看到的 userLatPosition:

userLatPosition = (NSNumber *) 0x02ab6678 (null)

有人会认为 if 语句应该是错误的,它会跳过 if 但由于某种原因它确实进入了 if 行......</p>

有人知道为什么吗?NSNumbers 中对 (null) 的正确检查是什么?

4

1 回答 1

1

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

支票看起来像这样:

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

另请参阅:使用 NSNull

于 2013-02-17T12:17:43.687 回答