首页 > 解决方案 > null,nill 是 Objective-C 中的字符串类型

问题描述

//result: ok fine
NSString *email = [dataDic objectForKey:@"email"];
if([email isEqualToString:@"null"])
    email = nil;
if((![email length]) == 0)
    self.emailLbl.text = email;

// result: not fine
NSString *email = [dataDic objectForKey:@"email"];
if((![email length]) == 0 || (email != nil) )
    self.emailLbl.text = email;

在字典中,电子邮件属性值包含空值。我的问题是 nil 的类型是什么?-> if comparison email == nil || email == [NSNull null]

标签: objective-cerror-handlingruntime-error

解决方案


您应该检查键 @"email" 是否包含任何值(如果它是字符串)

NSString *email=dic[@"email"];
if (email) {
    //do anything with email
}

如果你想检查你的对象是 Nil 还是 Null 然后做

if (!email || email == (id)[NSNull null]) {
    //email unavailable
}

或者,您可以调用[Obj isKindOfClass:[NSNull class]]任何对象。


推荐阅读