首页 > 学院 > 开发设计 > 正文

CRASH: -[NSNull length]: unrecognized selector sent to instance错误的处理办法

2019-11-09 16:28:59
字体:
来源:转载
供稿:网友

开发中从后台请求数据,返回如下:

2014-12-05 16:44:52.535 掌麦[6984:613] getDefaultAddress: reuslt == {    item =     {        data =         {            address = "<null>";            area = "<null>";            city = "<null>";            name = "";            phone = 18503051318;            PRovince = "<null>";        };        mark = 1;        msg = "/U6210/U529f";    };    status = 1;}我直接解析出字典dic,赋值:

[objc] view plain copy 在CODE上查看代码片<span style="font-size:18px;">    NSString *address = [dic objectForKey:@"address"];      //NSString *area = [dic objectForKey:@"area"];      NSString *name = [dic objectForKey:@"name"];      //NSString *city = [dic objectForKey:@"city"];      NSString *phone = [dic objectForKey:@"phone"];      //NSString *province = [dic objectForKey:@"province"];      self.addressLabel.text = address;      self.nameLabel.text    = name;      self.phoneLabel.text   = phone;    </span>    %20结果报错:CRASH:%20-[NSNull%20length]:%20unrecognized%20selector%20sent%20to%20instance

原因及时后台返回有些值为null,在object-c中就是nsull的空值

所以解析后,应加一判断,防止出错

[objc] view%20plain copy 派生到我的代码片<span style="font-size:18px;">    if (![address isKindOfClass:[NSNull class]]) {          self.addressLabel.text = address;      }      if (![name isKindOfClass:[NSNull class]]) {          self.nameLabel.text    = name;      }      if (![phone isKindOfClass:[NSNull class]]) {          self.phoneLabel.text   = phone;      }  </span>  这样就OK了
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表