在後台的返回數據中,我們時常會遇到返回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