转载

iOS处理网络请求的返回的数据Null问题

本文为CocoaChina网友天明天投稿

iOS 网络请求中的空类型字符串转换

将网络请求的返回的空数据所有NSNull类型转化成@"" .h 文件

//    
//  NSDictionary+SetNullWithStr.h    
//  Buyers    
//    
//  Created by 陈小明 on 2017/1/3.    
//  Copyright ? 2017年 wanshenglong. All rights reserved.    
//    
#import     
@interface NSDictionary (SetNullWithStr)    
/*    
 *把服务器返回的 替换为“”    
 *json表示获取到的带有NULL对象的json数据    
 *NSDictionary *newDict = [NSDictionary changeType:json];    
 */    
+(id)changeType:(id)myObj;    
@end

.m 文件

//    
//  NSDictionary+SetNullWithStr.m    
//  Buyers    
//    
//  Created by 陈小明 on 2017/1/3.    
//  Copyright ? 2017年 wanshenglong. All rights reserved.    
//    
#import "NSDictionary+SetNullWithStr.h"    
@implementation NSDictionary (SetNullWithStr)    
//将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 @"";    
}    
//主要方法    
//类型识别:将所有的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;    
}    
}    
@end

使用方法:

NSDictionary *dic = (NSDictionary*)responseObject;
NSDictionary *newDic = [NSDictionary changeType:dic];

源码地址:https://github.com/chenXming/SetNulllWithStr

正文到此结束
Loading...