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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

.h文件代碼:

@interface NSDictionary (DeleteNull)

+ (id)changeType:(id)myObj;

?@end

?

.m文件代碼:

@implementation NSDictionary (DeleteNull)

?//將NSDictionary中的Null類型的項目轉化成@""

+(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類型的項目轉化成@""

+(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類型的項目轉化成@""

+(NSString *)nullToString

{

? ? return @"";

}

?#pragma mark - 公有方法

//類型識別:將所有的NSNull類型轉化成@""

+(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的自動解析,去除掉值為null的鍵值對,我挺推崇這種方案的,但還要看個人喜好,裝逼一點的就用拓展(個人不推薦)代碼如下:

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

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

response.removesKeysWithNullValues?=?YES;??

manager.responseSerializer?=?response;??

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

?

轉載于:https://www.cnblogs.com/IceBlack-Tea-developer/p/5665685.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。