浅谈对NSDictionary的异常数据的处理

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

在后台的返回数据中,我们时常会遇到返回Null数据,那么我们在解析的时候需要对这种数据进行特殊的处理,但为了让我们每次都更快速的来处理这样的问题,所以我自己扩展面对了NSDictionary一个类别.对象如下

//.h文件

#import<Foundation/Foundation.h>

@interfaceNSDictionary (ObjectExt)

/**

*获取字典指定的array的对象

*

* @param aKey key

*

* @return value值如果为nil或者null会返回空列表

*/

-(NSArray*)arrayObjectForKey:(id)aKey;

/**

* 获取字典指定的对象为空是返回默认对象

*

* @param aKey key

* @param defaultObject value值如果为nil或者null会返回默认对象

*

* @return对象

*/

-(id)objectExtForKey:(id)aKey defaultObject:(id)defaultObject;

/**

*获取字典指定的array的对象

*

* @param aKey key

*

* @return value值如果为nil或者null会返回空列表

*/

-(NSMutableArray*)mutableArrayObjectForKey:(id)aKey;

/**

*@brief如果akey找不到,返回@"" (防止出现nil,使程序崩溃)

*

*@paramaKey字典key值

*

*@return字典value

*/

- (NSString*)stringForKey:(id)aKey;

/**

*@brief@brief如果akey找不到,返回默认值(防止出现nil,使程序崩溃)

*

*@paramaKey字典key值

*@paramdefValue为空时的默认值

*

*@return字典value

*/

- (NSString*)stringForKey:(id)aKey withDefaultValue:(NSString*)defValue;

/**

*@brief替换&nbsp;为空

*

*@paramaKey字典key值

*

*@return字典value

*/

- (NSString*)replaceNBSPforKey:(id)aKey ;

/**

*获取字典指定的key的数值字符

*

* @param aKey key

*

* @return value值如果为nil或者null会返回0字符串

*/

-(NSString*)numberStringForKey:(id)aKey;

@end

//.m文件

#import"NSDictionary+ObjectExt.h"

@implementationNSDictionary (ObjectExt)

/**

*获取字典指定的array的对象

*

* @param aKey key

*

* @return value值如果为nil或者null会返回空列表

*/

-(NSArray*)arrayObjectForKey:(id)aKey

{

idvalue = [selfobjectForKey:aKey];

if(value ==nil|| [valueisKindOfClass:[NSNullclass]])

{

return [NSArrayarray];

}

returnvalue;

}

/**

*获取字典指定的array的对象

*

* @param aKey key

*

* @return value值如果为nil或者null会返回空列表

*/

-(NSMutableArray*)mutableArrayObjectForKey:(id)aKey

{

idvalue = [selfobjectForKey:aKey];

if(value ==nil|| [valueisKindOfClass:[NSNullclass]])

{

return [NSMutableArrayarray];

}

returnvalue;

}

/**

* 获取字典指定的对象为空是返回默认对象

*

* @param aKey key

* @param defaultObject value值如果为nil或者null会返回默认对象

*

* @return对象

*/

-(id)objectExtForKey:(id)aKey defaultObject:(id)defaultObject

{

idvalue = [selfobjectForKey:aKey];

if(value ==nil|| [valueisKindOfClass:[NSNullclass]])

{

return defaultObject;

}

returnvalue;

}

/**

*@brief如果akey找不到,返回@"" (防止出现nil,使程序崩溃)

*

*@paramaKey字典key值

*

*@return字典value

*/

- (NSString*) stringForKey:(id)aKey

{

return[selfstringForKey:aKeywithDefaultValue:@""];

}

/**

*获取字典指定的key的数值字符

*

* @param aKey key

*

* @return value值如果为nil或者null会返回0字符串

*/

-(NSString*)numberStringForKey:(id)aKey

{

return[selfstringForKey:aKeywithDefaultValue:@"0"];

}

/**

*@brief@brief如果akey找不到,返回默认值(防止出现nil,使程序崩溃)

*

*@paramaKey字典key值

*@paramdefValue为空时的默认值

*

*@return字典value

*/

- (NSString*)stringForKey:(id)aKey withDefaultValue:(NSString*)defValue

{

NSString*value = [selfobjectForKey:aKey];

if(value ==nil|| [valueisKindOfClass:[NSNullclass]])

{

value = defValue;

}

return[NSStringstringWithFormat:@"%@",value];

}

/**

*@brief替换&nbsp;为空

*

*@paramaKey字典key值

*

*@return字典value

*/

-(NSString*)replaceNBSPforKey:(id)aKey

{

NSString*value = [selfobjectForKey:aKey];

if(!value)

{

value =@"";

}

NSString* str = [valuestringByReplacingOccurrencesOfString:@"&nbsp;"withString:@" "] ;

return[NSStringstringWithFormat:@"%@",str];

}

@end

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航