IOS-后台返回数据nil、null处理(福利)

说到后台返回数据,很多开发就该吐槽了,遇到不靠谱的后台,各种给你null nil,先不要慌着跟我理论怎么会传回来nil,看完你就懂了!

首先模拟一下后台返回数据类型:


我们model里面的属性:


IOS-后台返回数据nil、null处理(福利)_第1张图片

大家是不是发现少了一个phone,那这个时候用mj转化出来的model.phone不就是nil了,假如我们这时候想把这个model.phone放到数组或字典里面,或者说格式化[NSString stringWithFormatter:%@,model.phone]直接崩掉 ,或者说还有其他的应用场景,这种情况下你怎么办?可以跟后台商量解决,但是假如后台不改或者说后台是领导你怎么办,接下来说解决办法,这里我建议做两层防护措施,非常保险.

1.后台返回数据处理

采用递归排空,将返回数据一层层过滤,替换所有null(nil好像不会返回这个,不过我也写了)为@""空字符串,实现方法

2.mj返回数据过滤

在model.m里面加上这句话

- (id)mj_newValueFromOldValue:(id)oldValue property:(MJProperty *)property{

if (!oldValue||[oldValue isKindOfClass:[NSNull class]]) {

return @"";

}

return oldValue;

}

这个方法可以把mj返回的属性里面可能出现nil或null的情况排除。

做到这两点就万无一失了,喜欢的朋友请点喜欢,有疑问可以留言!

你可能感兴趣的:(IOS-后台返回数据nil、null处理(福利))