在网络开发过程中,我们会对返回的值进行处理,
得到(null)以及 < null>的返回值。
由于要根据返回值进行判断,做出必要反应,因此必须知道返回值所代表的具体字符,在得到(null)后利用isEqual:和@“”,NULL,@“(null)”,nil,Nil比较后均得不到正确结果,弄得不知所措了。
最后试了一下“==”,成功了。费尽周折之后才明白原来要这样用:
[NSNull null] 输出结果就是<null>
if([serUserInfo.userEmail isEqual:[NSNull null]])
{
serUserInfo.userEmail = @"未绑定";
}
//在处理网络返回的数据的时候
#import "NSMutableDictionary+JudgeNull.h"
@implementation NSMutableDictionary (JudgeNull)
/**
* 处理网络返回字典中value为<null> 的情况
* @param dictionary 网络返回的字典
*/
+ (NSMutableDictionary *) dictionaryWithDictionaryJudgeNull:(NSDictionary *)dictionary {
NSMutableDictionary * muDic = [NSMutableDictionary dictionaryWithDictionary:dictionary];
for (NSString *key in [muDic allKeys]) {
if ([muDic objectForKey:key] == [NSNull null]) {
[muDic removeObjectForKey:key];
}
}
return muDic;
}
@end
//注意::在处理网络返回的数据的时候经常会出现 <null>的情况,所以在写网络请求的时候,要考虑到这个地方出现的bug