? ? ?做ios開發(fā)的小伙伴肯定都深有體會(huì),服務(wù)器返回給我們的null實(shí)在是太可惡了,嚴(yán)重點(diǎn)直接導(dǎo)致程序崩潰,好一點(diǎn)的時(shí)候特么也會(huì)讓你界面上顯示個(gè)null,這肯定是不符合要求的.
至于如何處理,網(wǎng)上這種文章也很多了.有人提到了一個(gè)牛逼的Category,叫NullSafe,說直接拉到工程里面去就歐拉,其他什么都不用做,但是我試用了下,發(fā)現(xiàn)問題依然存在.無奈之下,只能自己寫了.由于本人比較喜歡用MJExtension,所以就想著可不可以在這里面干點(diǎn)什么就可以達(dá)到我的要求.廢話就不多說了,直接上代碼.
如果你也是用的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;
}
到此,問題解決.因?yàn)?這個(gè)方法就是MJ提供給我們用來過濾字典中的某些值用的.
作者:汪澤煌
QQ:563206959