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

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » iOS处理网络请求的返回的数据Null问题

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址