iOS NSDictionary扩展(取值为空处理防止赋值崩溃)

#import@interface NSDictionary (VASafeObjectForKey)

-(id)safeObjectForKey:(NSString*) key;

-(NSMutableDictionary *)mutableDeepCopy;

@end

#import "NSDictionary+VASafeObjectForKey.h"

@implementation NSDictionary (VASafeObjectForKey)

-(id)safeObjectForKey:(NSString*) key

{

id object = [self objectForKey:key];

if ([object isKindOfClass:[NSNull class]]) {

object = nil;

}

return object;

}

-(NSMutableDictionary *)mutableDeepCopy{

NSMutableDictionary *copyDict = [[NSMutableDictionary alloc]initWithCapacity:self.count];

for (id key in self.allKeys) {

id oneCopy = nil;

id oneValue = [self valueForKey:key];

if ([oneValue respondsToSelector:@selector(mutableDeepCopy)]) {

oneCopy = [oneValue mutableDeepCopy];

//        }else if ([object respondsToSelector:@selector(mutableCopy)]){

//            oneCopy = [object mutableCopy];

}else if ([oneValue respondsToSelector:@selector(copy)]){

oneCopy = [oneValue copy];

}

[copyDict setValue:oneCopy forKey:key];

}

return copyDict;

}

@end

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容