? ? ?做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