这是一个帮助我们 更方便使用NSDictionary 的扩展
.h文件
#import <Foundation/Foundation.h>
@interface NSDictionary (valueInfo)
/** 判断字典是否有某个key */
-(BOOL) hasKey:(NSString *) key;
/** 判断字典某个key 是否有值 */
-(BOOL) hasValueForKey:(NSString *) key;
/** 获取key 的 值*/
-(NSString *) stringValueForKey:(NSString *) key;
- (NSInteger) integerValueForKey:(NSString *)key;
- (BOOL) boolValueForKey:(NSString *)key;
@end
.m文件
//
// NSDictionary+valueInfo.m
// accountBook
//
// Created by careyang on 2018/6/8.
// Copyright © 2018年 careyang. All rights reserved.
//
#import "NSDictionary+valueInfo.h"
@implementation NSDictionary (valueInfo)
#pragma mark 获取key 的 值
-(NSString *) stringValueForKey:(NSString *) key
{
NSString * value = @"";
if (key && [self hasKey:key]) {
id obj = [self valueForKey:key];
if ([obj isKindOfClass:[NSString class]]) {
value = obj;
}else if ([obj respondsToSelector:@selector(stringValue)]){
value = [obj stringValue];
}
}
return value;
}
#pragma mark 判断字典是否有某个key
-(BOOL) hasKey:(NSString *) key
{
BOOL hasKey = NO;
NSArray * keyArr = [self allKeys];
for (NSString * currentKey in keyArr) {
if ([currentKey isEqualToString:key]) {
hasKey = YES;break;
}
}
return hasKey;
}
#pragma mark 判断字典某个key 是否有值
-(BOOL) hasValueForKey:(NSString *) key
{
BOOL hasValue = NO;
if (key && [self hasKey:key]) {
if ([self valueForKey:key]) {
hasValue = YES;
}
}
return hasValue;
}
- (NSInteger)integerValueForKey:(NSString *)key
{
NSInteger intValue = 0;
if (key && [self hasKey:key]) {
id object = [self valueForKey:key];
if (object && [object respondsToSelector:@selector(integerValue)]) {
intValue = [object intValue];
}
}
return intValue;
}
- (BOOL)boolValueForKey:(NSString *)key
{
BOOL boolValue = NO;
if (key && [self hasKey:key]) {
id object = [self valueForKey:key];
if (object && [object respondsToSelector:@selector(boolValue)]) {
boolValue = [object boolValue];
}
}
return boolValue;
}
只保留常用的几种类型,如果有其他的类型,可以参照上述方法,自行添加