日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

请求接口获取到的数据其中出现null值,处理的时候导致了程序crash,解决方案如下:...

發(fā)布時(shí)間:2025/3/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 请求接口获取到的数据其中出现null值,处理的时候导致了程序crash,解决方案如下:... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第一種方法是使用分類給字典添加一個(gè)類方法,將字典中的null值全部替換為空字符串,代碼如下:

.h文件代碼:

@interface NSDictionary (DeleteNull)

+ (id)changeType:(id)myObj;

?@end

?

.m文件代碼:

@implementation NSDictionary (DeleteNull)

?//將NSDictionary中的Null類型的項(xiàng)目轉(zhuǎn)化成@""

+(NSDictionary *)nullDic:(NSDictionary *)myDic

{

? ? NSArray *keyArr = [myDic allKeys];

? ? NSMutableDictionary *resDic = [[NSMutableDictionary alloc]init];

? ? for (int i = 0; i < keyArr.count; i ++)

? ? {

? ? ? ? id obj = [myDic objectForKey:keyArr[i]];

?

? ? ? ? obj = [self changeType:obj];

?

? ? ? ? [resDic setObject:obj forKey:keyArr[i]];

? ? }

? ? return resDic;

}

?

//將NSArray中的Null類型的項(xiàng)目轉(zhuǎn)化成@""

+(NSArray *)nullArr:(NSArray *)myArr

{

? ? NSMutableArray *resArr = [[NSMutableArray alloc] init];

? ? for (int i = 0; i < myArr.count; i ++)

? ? {

? ? ? ? id obj = myArr[i];

?

? ? ? ? obj = [self changeType:obj];

?

? ? ? ? [resArr addObject:obj];

? ? }

? ? return resArr;

}

?

//將NSString類型的原路返回

+(NSString *)stringToString:(NSString *)string

{

? ? return string;

}

?

//將Null類型的項(xiàng)目轉(zhuǎn)化成@""

+(NSString *)nullToString

{

? ? return @"";

}

?#pragma mark - 公有方法

//類型識(shí)別:將所有的NSNull類型轉(zhuǎn)化成@""

+(id)changeType:(id)myObj

{

? ? if ([myObj isKindOfClass:[NSDictionary class]])

? ? {

? ? ? ? return [self nullDic:myObj];

? ? }

? ? else if([myObj isKindOfClass:[NSArray class]])

? ? {

? ? ? ? return [self nullArr:myObj];

? ? }

? ? else if([myObj isKindOfClass:[NSString class]])

? ? {

? ? ? ? return [self stringToString:myObj];

? ? }

? ? else if([myObj isKindOfClass:[NSNull class]])

? ? {

? ? ? ? return [self nullToString];

? ? }

? ? else

? ? {

? ? ? ? return myObj;

? ? }

}

?

使用方法:

[model?setValuesForKeysWithDictionary:[NSDictionary?changeType:dict]]; ?

?

第二種方法是利用AFNetworking的自動(dòng)解析,去除掉值為null的鍵值對(duì),我挺推崇這種方案的,但還要看個(gè)人喜好,裝逼一點(diǎn)的就用拓展(個(gè)人不推薦)代碼如下:

AFHTTPRequestOperationManager?*manager?=?[AFHTTPRequestOperationManager?manager]; ?

AFJSONResponseSerializer?*response?=?[AFJSONResponseSerializer?serializer]; ?

response.removesKeysWithNullValues?=?YES;??

manager.responseSerializer?=?response;??

manager.requestSerializer?=?[AFJSONRequestSerializer?serializer]; ?

?

轉(zhuǎn)載于:https://www.cnblogs.com/IceBlack-Tea-developer/p/5665685.html

總結(jié)

以上是生活随笔為你收集整理的请求接口获取到的数据其中出现null值,处理的时候导致了程序crash,解决方案如下:...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。