在后台的返回数据中,我们时常会遇到返回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替换 为空
*
*@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替换 为空
*
*@paramaKey字典key值
*
*@return字典value
*/
-(NSString*)replaceNBSPforKey:(id)aKey
{
NSString*value = [selfobjectForKey:aKey];
if(!value)
{
value =@"";
}
NSString* str = [valuestringByReplacingOccurrencesOfString:@" "withString:@" "] ;
return[NSStringstringWithFormat:@"%@",str];
}
@end