0

我正在检查此字典中的项目(从服务器返回)是否为 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

4 回答 4

2

代替

if([userDict objectForKey:@"image_url"] == nil)

用这个:

if([userDict objectForKey:@"image_url"] == [NSNull null])

当您处理由 JSON 反序列化器或类似程序返回的字典时,这工作得很好。

于 2012-08-16T12:32:01.690 回答
1

尝试比较

[NSNull null]

于 2012-08-16T12:30:38.637 回答
1

[NSNull null]字典返回 null 对象,您可以使用这种方式检查它们,因此您可以与 null 对象进行比较。Null应该用于非对象指针。nil用于objective-cid类型。

于 2012-08-16T12:34:38.773 回答
0

检查所有 Null 之类if(object==[NSNull null]||object==NULL||object==nil)的。它将检查所有类型。所以你不需要具体。

于 2012-08-16T12:43:21.717 回答