美文网首页
字典(NSDictionary)

字典(NSDictionary)

作者: 随缘吖 | 来源:发表于2018-06-08 11:18 被阅读48次

这是一个帮助我们 更方便使用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;
}

只保留常用的几种类型,如果有其他的类型,可以参照上述方法,自行添加

相关文章

网友评论

      本文标题:字典(NSDictionary)

      本文链接:https://www.haomeiwen.com/subject/pkgosftx.html