這是一個(gè)幫助我們 更方便使用NSDictionary 的擴(kuò)展
.h文件
#import <Foundation/Foundation.h>
@interface NSDictionary (valueInfo)
/** 判斷字典是否有某個(gè)key */
-(BOOL) hasKey:(NSString *) key;
/** 判斷字典某個(gè)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 判斷字典是否有某個(gè)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 判斷字典某個(gè)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;
}
只保留常用的幾種類型,如果有其他的類型,可以參照上述方法贤姆,自行添加