2012-08-16 93 views
0

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

回答

2

相反:

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

即当你处理由JSON返回字典工作得很好解串器或类似的。

1

试比较

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

使用此而不是

[NSNull null]

1

字典返回空对象,你可以使用[NSNull null]来检查它们,这样你就可以比较空对象。 Null应该用于非对象指针。 nil用于objective-c id类型。

0

检查全部为空像if(object==[NSNull null]||object==NULL||object==nil)。它将检查所有类型。因此您不需要具体。