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

转载于:https://www.cnblogs.com/ShaoYinling/p/5936421.html

iOS :Object-C 语言merge两个字典对象相关推荐

  1. PDF加密、解密内幕(一) PDF加密字典对象分析

    PDF加密.解密内幕(一) - PDF加密字典对象分析 0 几个关键词的说明 PDF加密有两个口令即:Owner(to set the pdf document Permission or chang ...

  2. PDF加密、解密内幕(一)- (PDF加密字典对象分析)

    PDF加密.解密内幕(一) - PDF加密字典对象分析 0 几个关键词的说明 PDF加密有两个口令即:Owner(to set the pdf document Permission or chang ...

  3. 如何在一个表达式中合并两个字典?

    我有两个Python字典,我想编写一个返回合并的这两个字典的表达式. 如果update()方法返回其结果而不是就地修改dict,则将是我需要的方法. >>> x = {'a': 1, ...

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

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

  5. iOS开发笔记 - 语言篇之Swift

     2014年的苹果全球开发者大会(WWDC),当Craig Federighi向全世界宣布"We have new programming language"(我们有了新的编程语言 ...

  6. 系列:iOS开发-C语言基础

    #系列:iOS开发-C语言基础 之前也说了iOS中的OC是扩充C的面向对象编程语言 那么无论是从什么角度来说都要首先回顾一下C的内容,虽然很多人在大学的时候都有学习过C语言,一提到谭浩强,我估计90% ...

  7. 【面试题】python怎么合并两个字典

    Python中将两个字典进行合并操作,是一个比较常见的问题.本文将介绍几种实现两个字典合并的方案,并对其进行比较. 对于这个问题,比较直观的想法是将两个字典做相加操作,赋值给结果字典,其代码为: [方 ...

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

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

  9. ios c语言头文件,iOS开发 -- C语言基础12(预处理指令)

    iOS开发 -- C语言基础12(预处理指令) 宏定义 预处理指令简介 1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源 ...

最新文章

  1. pcDuino 软件更新
  2. (转载)计算机科学中最重要的32个算法
  3. python 服务端渲染_客户端渲染和服务器渲染的区别
  4. SQL基础选段(2)
  5. TensorFlow系列(一):TensorFlow是什么
  6. service mysqld start,Failed to start mysqld.service: Access denied
  7. python安装各种插件
  8. CNN卷积神经网络(吴恩达《卷积神经网络》笔记一)
  9. CVPR 2021 论文分享会预告
  10. 【QT】QT从零入门教程(九):QT常用控件 [QSlider、QSpinBox、QComboBox、QRadioButton]
  11. 张一鸣的心里“住着小马哥”
  12. 递增的整数序列链表的插入_leetcode673_go_最长递增子序列的个数
  13. jsp内置对象练习题
  14. MD5碰撞,不同的原始数据,MD5后,值一样,出现碰撞
  15. 重磅!超详细的 JS 数组方法整理出来了
  16. 高德地图API的一些使用心得
  17. 怎么更改计算机管理员的用户名,如何修改系统默认账户administrator
  18. 怎样在word中画横线
  19. 梯度消失/爆炸与RNN家族的介绍(LSTM GRU B-RNN Multi-RNNs)-基于cs224n的最全总结
  20. 讲座报名 | 清华大学副教授刘知远:大模型十问

热门文章

  1. SCCM2012系列之六,SCCM2012部署前的WDS准备
  2. 恶意软件借手机游戏强行吸取流量,使用代码签名证书验明证身
  3. mysql install语句_MySQL入门学习(一)安装与基本操作
  4. python3.9新特性_Python 3.9正式版,新特性提前一睹为快
  5. “订阅”与“反向订阅”--简书功能设计探索
  6. 【转载】网络通讯协议的国际斗争
  7. Android Studio 设置HTTP代理无法取消的问题
  8. 浅谈格斗游戏的精髓——方块的战争
  9. Discuz论坛分表以及memcache缓存优化
  10. vconsole在手机真机模拟器上显示console控制台