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];
}
}
}

iOS :Object-C 语言merge两个字典对象的更多相关文章

  1. iOS开发-OC语言 (五)字典

    字典 主要知识点: 1.NSDictionary 类 2.NSMutableDictionary 类 3.了解NSMutableDictionary 与 NSDictionary 的继承关系 4.补充 ...

  2. Android &Swift iOS开发:语言与框架对比

    转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_sour ...

  3. Object Pascal 语言基础

    Delphi 是以Object Pascal 语言为基础的可视化开发工具,所以要学好Delphi,首先要掌握的就是Object Pascal 语言.Object Pascal语言是Pascal之父在1 ...

  4. iOS 国际化多语言设置 xcode7

    iOS 国际化多语言设置 方式一: 1. 在storyboard中创建好UI,然后在 project 里面  Localizables 栏目里面,添加你需要的语言:默认是Englist; 比如这里我添 ...

  5. 【转载】Python中如何高效实现两个字典合并,三种方法比较。

    本文转载自:http://www.pythoner.com/13.html Python中将两个字典进行合并操作,是一个比较常见的问题.本文将介绍几种实现两个字典合并的方案,并对其进行比较. 对于这个 ...

  6. python3两个字典的合并

    两个字典的合并其实很简单,直接用dict的update即可,代码如下: # /usr/bin/python3 # -*- encoding: utf-8 -*- ", "" ...

  7. iOS 设置app语言中文,比如 copy中文,拍照按钮cancel 中文

    iOS 设置app语言中文,比如 copy中文,拍照按钮cancel 中文 一:如何设置项目中文环境 targets--->Locatization native development reg ...

  8. 李洪强iOS经典面试题34-求两个链表表示的数的和

    李洪强iOS经典面试题34-求两个链表表示的数的和 问题 给你两个链表,分别表示两个非负的整数.每个链表的节点表示一个整数位. 为了方便计算,整数的低位在链表头,例如:123 在链表中的表示方式是: ...

  9. Leecode刷题之旅-C语言/python-1.两数之和

    开学后忙的焦头烂额(懒得很),正式开始刷leecode的题目了. 想了想c语言是最最基础的语言,虽然有很多其他语言很简单,有更多的函数可以用,但c语言能煅炼下自己的思考能力.python则是最流行的语 ...

随机推荐

  1. FMDB中常用SQL使用

    大家工作中,最常用到的无非是 增.删.查.改... 在SQL中对应的语句为:INSERT DELETE SELECT UPDATE 首先,你可以使用一款叫做“sqlite database brows ...

  2. iOS开发——高级篇——线程保活

    线程保活: 顾名思义,就是保护线程不死(保证线程处于激活状态,生命周期没有结束) 正常情况,当线程执行完一次任务之后,需要进行资源回收,也就意味着生命周期结束 应用场景: 当有一个任务,随时都有可能去 ...

  3. a simple and universal interface between web servers and web applications or frameworks: the Python Web Server Gateway Interface (WSGI).

    WSGI is the Web Server Gateway Interface. It is a specification that describes how a web server comm ...

  4. YTU 2901: G-险恶逃生II

    2901: G-险恶逃生II 时间限制: 1 Sec  内存限制: 128 MB 提交: 44  解决: 14 题目描述     SOS!!!koha is trapped in the danger ...

  5. 使用C#开发HTTP服务器系列之实现Get和Post

     各位朋友大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是http://qinyuanpei.com.在我们这个Web服务器有了一个基本的门面以后,我们是时候来用它做点实际的事情了.还记得我们 ...

  6. I.MX6 U-boot编译找不到用户目录

    /**************************************************************************** * I.MX6 U-boot编译找不到用户目 ...

  7. NABCD项目需求报告

    项目:记账小账本 N:need 需求 根据我们的调查,很多人虽然知道记账有很多的好处,但是因为种种的原因,我们都没能养成记账的好习惯,所以我们所做的记账小软件,说到底是一个行为养成类的软件,而这类软件 ...

  8. 使用jQuery的tab控件

    以前写winform程序的时候tab控件是非常容易使用的,写网页时确费了我不少劲,主要原因是jQuery的混乱. 有很多前端控件都提供tab,像bootstrap等,这里只说jQuery的. 下载相应 ...

  9. Github个人主页不显示提交记录的问题

    最近发现自己连续三天在github上的提交没显示在个人主页上,一番搜索后终于发现原来是因为没有把git的配置改过来,提交的代码时使用了不同的email. https://code.bradymower ...

  10. Linux 系统管理命令 - free - 查看系统内存信息

    命令详解 重要星级: ★★★★★ 功能说明: free 命令用于显示系统内存状态,具体包括系统物理内存.虚拟内存.共享内存和系统缓存等. 语法格式: free [option] free [选项] 说 ...