做ios开发的小伙伴肯定都深有体会,服务器返回给我们的null实在是太可恶了,严重点直接导致程序崩溃,好一点的时候特么也会让你界面上显示个null,这肯定是不符合要求的.
至于如何处理,网上这种文章也很多了.有人提到了一个牛逼的Category,叫NullSafe,说直接拉到工程里面去就欧拉,其他什么都不用做,但是我试用了下,发现问题依然存在.无奈之下,只能自己写了.由于本人比较喜欢用MJExtension,所以就想着可不可以在这里面干点什么就可以达到我的要求.废话就不多说了,直接上代码.
如果你也是用的MJExtension,那么你可以在模型的.m文件中增加以下方法:
- (id)mj_newValueFromOldValue:(id)oldValue property:(MJProperty *)property{
if (oldValue == [NSNull null]) {
if ([oldValue isKindOfClass:[NSArray class]]) {
return @[];
}else if([oldValue isKindOfClass:[NSDictionary class]]){
return @{};
}else{
return @"";
}
}
return oldValue;
}
到此,问题解决.因为;这个方法就是MJ提供给我们用来过滤字典中的某些值用的.
作者:汪泽煌
QQ:563206959