字典Dictionary是集合类的一种。
集合:数组array、字典dictionary、set;数组是有顺序的,且元素可以重复的;字典是没有顺序的,键是唯一的,值是可重复的;set是无序的,且不可重复的。
字典就是以键值对的形式存在的数据集合;
字典的键是唯一的;
字典的值是可重复的;
字典的键值是一一对应的,即有多少个键,就有多少个值;
字典中的键值对是没有顺序的;
比如:身份证 & 姓名;身份证就是键,姓名就是值。
 
字典分不可变字典,可变字典两类。
注意:
键值都是对象类型,不能是基础数值;

特别是键,一般都是string对象设置;

// 不可变字典
// 初始化
NSDictionary *dict001 = [[NSDictionary alloc] initWithObjectsAndKeys:@"张绍锋", @"name", @"男", @"sex", nil];
NSLog(@"\n dict001 = %@ \n", dict001);
// 属性
// 1 个数
NSInteger count = dict001.count;
NSLog(@"\n count = %ld \n", count);// 2 所有的键
NSArray *keyArray = dict001.allKeys;
NSLog(@"\n");
for (NSString *string in keyArray)
{NSLog(@"string = %@", string);
}// 3 所有的值
NSArray *valueArray = dict001.allValues;
NSLog(@"\n");
for (NSString *string in valueArray)
{NSLog(@"string = %@", string);
}
// 字典操作
// 获取键对应的值
NSString *value = [dict001 objectForKey:@"name"];
NSLog(@"\n");
NSLog(@"name = %@", value);
// 可变字典
NSMutableDictionary *dict002 = [NSMutableDictionary dictionaryWithDictionary:dict001];
NSLog(@"\n dict002 = %@ \n", dict002);
// 添加对象
// 1 setobject时,值必须是非空对象类型,如果值是非对象类型,则报错
[dict002 setObject:@"大学比业" forKey:@"education"];
//[dict002 setObject:nil forKey:@"education"]; // 编译报错
NSLog(@"\n dict002 = %@ \n", dict002);// 2 setvalue时,不管值是不是对象类型,都不会报错,但对象不会添加到字典中
[dict002 setValue:@"高级电工" forKey:@"job"];
//[dict002 setValue:nil forKey:@"job"]; // 可正常编译运行,但对象不会添加到字典中
NSLog(@"\n dict002 = %@ \n", dict002);
// 替换指定键对应的值
[dict002 setValue:@"iOS Dve" forKey:@"job"];
NSLog(@"\n dict002 = %@ \n", dict002);
// 删除指定键对应的值
// 1 删除指定键对应的值
[dict002 removeObjectForKey:@"job"];
NSLog(@"\n dict002 = %@ \n", dict002);// 2 删除指定键数组对应的值
NSArray *keys = @[@"education", @"sex"];
[dict002 removeObjectsForKeys:keys];
NSLog(@"+\n dict002 = %@ \n", dict002);// 3 删除所有的键值
[dict002 removeAllObjects];
NSLog(@"-\n dict002 = %@ \n", dict002);
// 重新初始化值
[dict002 setDictionary:dict001];
NSLog(@"\n dict002 = %@ \n", dict002);

NSDictionary的使用及常用方法(如实始化、添加元素、删除元素、修改元素值等)相关推荐

  1. 【C 语言】字符串操作 ( C 字符串 | 字符数组始化 )

    文章目录 一.C 字符串 二.字符数组始化 一.C 字符串 C 字符串特征 : C 语言中的字符串都是以 '\0'字符 结尾的 字符数组 ; C 字符串本质 : C 中 没有字符串类型 , 都是使用 ...

  2. 三、面向对象——9-初始化块

    9-初始化块 1.初始化块的使用 2.初始化块和构造器 3.静态初始化块 转载于:https://www.cnblogs.com/ljiwej/p/7275594.html

  3. 01-初始化Vite项目

    Vite2+Vue3+TypeScript+Element-plus脚手架搭建系列 ✅01-初始化 Vite 项目 ✅02-配置 Vite2 环境变量 ✅03-Vite2 配置及说明 ✅04-Vue3 ...

  4. CentOS7和CentOS8 FreeSWITCH 1.10.7 简单图形化界面2--初始化配置

    CentOS7和CentOS8 FreeSWITCH 1.10.7 简单图形化界面2--初始化配置 2.接收服务器告警 (1)添加接收告警信息的邮箱地址 (2)添加服务器的邮箱地址 3.修改网站信息 ...

  5. 【H.264/AVC视频编解码技术详解】十九:熵编码算法(5)——H.264的CABAC(上):语法元素的二值化方法...

    <H.264/AVC视频编解码技术详解>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战工程的形式对H.264的标准进行 ...

  6. 验证 Boost.Optional 复制构造函数不会尝试调用从模板化参数初始化构造函数的元素类型

    验证 Boost.Optional 复制构造函数不会尝试调用从模板化参数初始化构造函数的元素类型 实现功能 C++实现代码 实现功能 验证 Boost.Optional 复制构造函数不会尝试调用从模板 ...

  7. c#图像灰度化、灰度反转、二值化

    图像灰度化: 将彩色图像转化成为灰度图像的过程成为图像的灰度化处理.彩色图像中的每个像素的颜色有R.G.B三个分量决定,而每个分量有255中值可取,这样一个像素点可以有1600多万(255*255*2 ...

  8. 3dmax:3dmax的软件右边栏常用修改器(面挤出、网格/平滑、涡轮平滑、球形化、曲面修改器、星、融化、删除网格修改器、体积选择、优化、UVW贴图修改器、弯曲、置换、噪波、锥化)之详细攻略

    3dmax:3dmax的软件右边栏常用修改器(面挤出.网格/平滑.涡轮平滑.球形化.曲面修改器.星.融化.删除网格修改器.体积选择.优化.UVW贴图修改器.弯曲.置换.噪波.锥化)之详细攻略 目录

  9. 【H.264/AVC视频编解码技术详解】十九、熵编码(5):CABAC语法元素的二值化

    <H.264/AVC视频编解码技术详解>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战工程的形式对H.264的标准进行 ...

最新文章

  1. 绝对自回归模型(或将解决标注问题)
  2. DNNBrain:北师大团队出品,国内首款用于映射深层神经网络到大脑的统一工具箱...
  3. 服务器维修一天,魔兽世界怀旧服一天增加16个服务器,维护四次,这才是明智选择...
  4. re搜索字符串与find字符串不一样的结果
  5. unity 关闭自己脚本_unity中使用代码控制脚本的开启和关闭 enabled
  6. Java黑皮书课后题第5章:**5.22(金融应用:显示分期还贷时间表)对于给定的贷款额,月支付额包括偿还本金及利息。编写一个程序,让用户输入贷款总额年限利率,然后显示分期还贷时间表
  7. DEBUG命令的应用
  8. switch一定比if else好用吗
  9. 三步完成自动抢票,又一款春节免费抢票神器推荐
  10. 开票软件V2.0.49_ZS_20220630开票接口
  11. 在PHP中用sleep导致诡异事件
  12. 1分钟彻底搞懂关于nginx的proxy_pass
  13. 北斗导航 | EagleEye2000:国产激光雷达走进测绘世界
  14. insert overwrite出现Table insclause-0 has 9 columns, but query has 10 columns.
  15. 【python爬虫】学习笔记1-爬取某网站妹子图片
  16. 上buff——状态模式
  17. FPGA开发——图像处理(包括MT9V034等摄像头学习笔记)
  18. 亲测有效解决:excel把CSV数字转化成了日期导致数据处理出问题
  19. python获得list的维度
  20. Python导入sklearn报错:OSError: Failed to open file b‘C:\\\...AppData\\Local\\Temp\\scipy-...’

热门文章

  1. 五虎遁月 和 五鼠遁时 法
  2. 分享我的电子藏书:Windows编程(共4本)
  3. Allegro 172版本自动放置层叠
  4. 关于税控盘的一些记录
  5. 配置使用豆瓣pip源
  6. 实现垂直居中的几种方式
  7. Spring boot配置logback日志打印到指定路径文件
  8. PHP实现量化交易,量化交易干货丨如何使用DolphinDB计算K线
  9. 浅谈五阶巴特沃斯滤波器硬件设计归一化法
  10. 2020张宇1000题【好题收集】【第三章:一元函数积分学】