我正在检查这个词典中的项目(从服务器返回)是否为NULL,如下所示:
NSString *imageURL = [userDict objectForKey:@"image_url"];
NSString *userName = [userDict objectForKey:@"username"];
NSString *typeName = [userDict objectForKey:@"type"];
if (imageURL == NULL || userName == NULL || typeName == NULL || imageURL.length == 0) {
localImage = [UIImage imageNamed:@"first.png"];
[addAnnotation setTitle:@"Something"];
[addAnnotation setSubTitle:@"Wrong"];
}
但是,在一个记录中(上面是for循环)[userDict objectForKey:@"image_url"]
返回"<null>"
但是在上面的if语句中没有正确处理。为什么我的空检查没有工作?
答案 0 :(得分:2)
而不是
if([userDict objectForKey:@"image_url"] == nil)
使用此:
if([userDict objectForKey:@"image_url"] == [NSNull null])
当你处理由JSON反序列化器或类似代码返回的字典时,这很好用。
答案 1 :(得分:1)
尝试比较
[NSNull null]
答案 2 :(得分:1)
字典返回可以使用[NSNull null]
检查它们的空对象,这样就可以比较空对象。 Null
应该用于非对象指针。 nil
用于objective-c id
类型。
答案 3 :(得分:0)
检查所有Null如if(object==[NSNull null]||object==NULL||object==nil)
。它会检查所有类型。所以你不需要具体。