浅谈对NSDictionary的异常数据的处理
2014-12-05 00:00
387 查看
在后台的返回数据中,我们时常会遇到返回Null数据,那么我们在解析的时候需要对这种数据进行特殊的处理,但为了让我们每次都更快速的来处理这样的问题,所以我自己扩展面对了NSDictionary一个类别.对象如下
//.h文件
#import <Foundation/Foundation.h>
@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
//.h文件
#import <Foundation/Foundation.h>
@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
相关文章推荐
- 浅谈数据挖掘中的数据处理(缺失值处理以及异常值检测)
- Scott Mitchell 的ASP.NET 2.0数据教程之十八:: 在ASP.NET页面中处理BLL/DAL层的异常
- Scott Mitchell 的ASP.NET 2.0数据教程之三十八:: 处理BLL和DAL的异常
- JOptionpane.showinputdialog 数据异常 处理
- DataSet的数据并发异常处理
- DetailsView中如何进行数据验证,如何处理数据库的异常
- oracle10g- oracle关于数据操作时异常的处理 编写自定义的异常
- gridview导出数据时常见异常的处理
- Scott Mitchell 的ASP.NET 2.0数据教程之十八:: 在ASP.NET页面中处理BLL/DAL层的异常
- 从GridView中直接导出数据到Excel文件 处理导出乱码 类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常
- oracle数据异常处理
- Scott Mitchell 的ASP.NET 2.0数据教程之十八:: 在ASP.NET页面中处理BLL/DAL层的异常
- Spring中关于保存数据时重名的处理异常
- 处理SDE数据时的Network I/O Error异常
- Scott Mitchell 的ASP.NET 2.0数据教程之三十八:: 处理BLL和DAL的异常
- DataSet的数据并发异常处理
- 在ASP.NET_2.0中操作数据.在ASP.NET页面中处理BLL.DAL层的异常
- Scott Mitchell 的ASP.NET 2.0数据教程之三十八:: 处理BLL和DAL的异常
- 在使用SSH过程中,在JSP页面中对数据进行处理,出异常!
- 从GridView中直接导出数据到Excel文件 处理导出乱码 类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常