zoukankan      html  css  js  c++  java
  • iOS :Object-C 语言merge两个字典对象

    Object-C 语言merge两个字典对象

    
    - (id)mutableDictionaryCopyIfNeeded:(id)dictObj
    {
        if ([dictObj isKindOfClass:[NSDictionary class]] &&
            ![dictObj isKindOfClass:[NSMutableDictionary class]]) {
            dictObj = [dictObj mutableCopy];
        }
        return dictObj;
    }
    
    /**
     合并两个字典
    
     @param dict 被合并的字典
     */
    - (void)mergingWithDictionary:(NSDictionary *)dict
    {
        for (id key in [dict allKeys]) {
            id obj = [self mutableDictionaryCopyIfNeeded:[dict objectForKey:key]];
            id localObj = [self mutableDictionaryCopyIfNeeded:[self objectForKey:key]];
            if ([obj isKindOfClass:[NSDictionary class]] &&
                [localObj isKindOfClass:[NSMutableDictionary class]]) {
                // Recursive merge for NSDictionary
                [localObj mergingWithDictionary:obj];
            } else if (obj) {
                [self setObject:obj forKey:key];
            }
        }
    }
    
    /**
     合并两个字典
    
     @param dict       被合并的字典
     @param ignoredKey 忽略的Key
     */
    - (void)mergingWithDictionary:(NSDictionary *)dict ignoredDictKey:(NSString *)ignoredKey
    {
        for (id key in [dict allKeys]) {
            if ([key isEqualToString:ignoredKey]) {
                continue;
            }
            id obj = [self mutableDictionaryCopyIfNeeded:[dict objectForKey:key]];
            id localObj = [self mutableDictionaryCopyIfNeeded:[self objectForKey:key]];
            if ([obj isKindOfClass:[NSDictionary class]] &&
                [localObj isKindOfClass:[NSMutableDictionary class]]) {
                // Recursive merge for NSDictionary
                [localObj mergingWithDictionary:obj];
            } else if (obj) {
                [self setObject:obj forKey:key];
            }
        }
    }
    
  • 相关阅读:
    java工程师要求
    系统架构设计师知识模块
    Mybatis使用训练
    项目—视频直播系统
    [数算]概率
    查看镜像文件
    Hadoop启动命令
    Hadoop启动命令
    HDFS设置配额管理
    HDFS设置配额管理
  • 原文地址:https://www.cnblogs.com/ShaoYinling/p/5936421.html
Copyright © 2011-2022 走看看