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

网友投稿 336 2022-06-16


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

//.h文件

#import 

@interface NSDictionary (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,使程序崩溃)

*

* @param aKey 字典key值

*

* @return 字典value

*/

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

/**

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

*

* @param aKey 字典key值

* @param defValue 为空时的默认值

*

* @return 字典value

*/

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

/**

* @brief 替换 为空

*

* @param aKey 字典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"

@implementation NSDictionary (ObjectExt)

/**

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

*

*  @param aKey key

*

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

*/

-(NSArray*)arrayObjectForKey:(id)aKey

{

id value = [self objectForKey:aKey];

if (value == nil || [value isKindOfClass:[NSNull class]])

{

return  [NSArray array];

}

return value;

}

/**

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

*

*  @param aKey key

*

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

*/

-(NSMutableArray*)mutableArrayObjectForKey:(id)aKey

{

id value = [self objectForKey:aKey];

if (value == nil || [value isKindOfClass:[NSNull class]])

{

return  [NSMutableArray array];

}

return value;

}

/**

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

*

*  @param aKey          key

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

*

*  @return 对象

*/

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

{

id value = [self objectForKey:aKey];

if (value == nil || [value isKindOfClass:[NSNull class]])

{

return  defaultObject;

}

return value;

}

/**

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

*

* @param aKey 字典key值

*

* @return 字典value

*/

- (NSString*) stringForKey:(id)aKey

{

return [self stringForKey:aKey withDefaultValue:@""];

}

/**

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

*

*  @param aKey key

*

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

*/

-(NSString*)numberStringForKey:(id)aKey

{

return [self stringForKey:aKey withDefaultValue:@"0"];

}

/**

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

*

* @param aKey 字典key值

* @param defValue 为空时的默认值

*

* @return 字典value

*/

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

{

NSString *value = [self objectForKey:aKey];

if (value == nil || [value isKindOfClass:[NSNull class]])

{

value = defValue;

}

return [NSString stringWithFormat:@"%@",value];

}

/**

* @brief 替换 为空

*

* @param aKey 字典key值

*

* @return 字典value

*/

-(NSString*)replaceNBSPforKey:(id)aKey

{

NSString *value = [self objectForKey:aKey];

if (!value)

{

value = @"";

}

NSString* str = [value stringByReplacingOccurrencesOfString:@" " withString:@" "] ;

return [NSString stringWithFormat:@"%@",str];

}

@end


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java 异常大集合(java培训学校)
下一篇:Java并发(java并发编程之美)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~