检查NULL不起作用

时间:2012-08-16 12:29:18

标签: iphone ios rest null

我正在检查这个词典中的项目(从服务器返回)是否为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语句中没有正确处理。为什么我的空检查没有工作?

4 个答案:

答案 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)。它会检查所有类型。所以你不需要具体。