OutMan——Foundation框架中的集合类(三)
来源:互联网 发布:唱歌打分软件 编辑:程序博客网 时间:2024/04/29 23:22
NSDictionary和NSMutableDictionary
- NSDictionary:不可变字典(父类)
- NSMutableDictionary:可变字典(子类)
- 字典的key值和value值都必须是对象
NSDictionary
一、字典的创建:
// 字典的创建// 创建一个空的字典NSDictionary *dic = [NSDictionary dictionary];// 创建一个字典,里面只包含一对键值对NSDictionary *dic2 = [NSDictionary dictionaryWithObject:@"jack" forKey:@"name"];// 创建一个字典,里面包含多对键值对NSDictionary *dic3 = [NSDictionary dictionaryWithObjectsAndKeys:@"rose", @"name", @"18", @"name", nil];NSDictionary *dic4 = [[NSDictionary alloc] initWithObjectsAndKeys:@"rose", @"name", @"18", @"name", nil];NSArray *keys = @[@"name", @"age"];NSArray *values = @[@"rose", @"18"];NSDictionary *dic5 = [NSDictionary dictionaryWithObjects:values forKeys:keys];NSDictionary *dic6 = [[NSDictionary alloc] initWithObjects:values forKeys:keys];// 快速创建字典NSDictionary *dic7 = @{@"name":@"rose", @"age":@"18"};
二、字典的访问:
三、字典的读写:
(1) 字典的读写方式一:
(2) 字典的读写方式二:
URL:资源路径
URL的格式: 协议头//路径
file:// 本地
http:// 互联网传输协议
https:// 加密的互联网数据传输
ftp:// 点对点的文件传输
- 上述方法的几个注意事项:
1.
NSURL *url = [NSURL URLWithString: @”file:///Users/otman/Desktop/dic.plist”];
file:// 代表本地路径,第三个/是根路径
通过这种方法创建的url,如果路径中有中文则无法正常使用
2.
NSURL *url2 = [NSURL fileURLWithPath: @”/Users/otman/Desktop/dic.plist”];
如果是本地资源路径,可以使用 fileURLWithPath: 文件路径 来创建url
四、字典的常用方法:
(1)查看字典中键值对的个数
五、字典的遍历
(1)方式一:
(2)方式二:(快速枚举法)
- 使用注意:通过快速枚举法遍历字典,会将字典中的key值依次赋值给obj,每赋值一次,执行一次循环体
(3)方式三:
- 使用注意:
1. 每遍历到一对键值对,就会调用一次block
2. 并且将当前键值对的key和value当做参数传递给block的key和obj
3. 为什么是BOOL *stop?
如果没有*,只是纯粹的值传递,只有block接收一个地址,才可以根据地址修改外面的值
4. *stop 为 YES停止遍历; *stop为NO继续遍历
NSMutableDictionary
- NSMutableDictionary为NSDictionary的子类,所以NSDictionary拥有的方法NSMutableDictionary也都拥有
一、增
- 使用注意:
1. 在往字典中添加键值对的时候应当注意,如果给同一个key赋值,当前值会覆盖之前key对应的value值
2. 字典中得键值对是没有顺序的,先添加和后添加没有什么顺序之分
二、删
三、改
- 使用注意:
1. 这是根据给字典中同一个key复制,当前值会覆盖之前key对应的value值的特点来进行修改的
2. 还有一种简单的方法来修改字典对某个key对应的值
四、查
NSDictionary和NSMutableDictionary的使用注意
一、NSDictionary和NSMutableDictionary的使用注意:
1. @{ }这种方式创建的是一个不可变字典
2. 字典的key值可value值都必须是对象
3. 字典对象直接使用NSLog()作为输出的时候,是大括号{}括起来的形式
4. 在字典中,key值不能相同
<1> 创建字典的时候,key值有重复
- 注意:在字典创建的时候,key值不能相同,如果key值重复了,最后添加的键值对将不能够保存到字典中
<2> 在添加键值对的时候,key值有重复
- 注意:在给同一个key赋值的时候,当前值会覆盖之前key对应的value值
NSArray和NSDictionary的对比
一、NSArray和NSDictionary的简单对比:
1. NSArray是有序的,NSDictionary是没有顺序的
2. NSArray是通过元素下标访问元素,NSDictionary是通过key访问对应的value
3. NSArray的用法:
<1> 创建:
NSArray *arr = @[@”rose”, @”jack”];
@[ ]这种方式创建的是一个不可变数组
<2> 访问:
id d = arr[0];
4. NSDictionary的用法:
<1> 创建:
NSDictionary *dic = @{@“name”:@“rose”, @“age”:@“18”};
@{ }这种方式创建的是一个不可变字典
<2> 访问:
id d = dic[@”name”];
—— 如果您有不同的见解,请随时指出,期待与您的交流!——
- OutMan——Foundation框架中的集合类(三)
- OutMan——Foundation框架中的集合类(一)(二)
- OutMan——Foundation框架中的NSDate类、NSCalendar类以及NSFileManager类
- OutMan——Foundation框架中的NSString类和NSMutableString类
- OutMan——Foundation框架中的常用结构体、NSNumber类和NSValue类
- Foundation框架—集合
- Foundation框架—集合
- Foundation框架—集合
- Foundation框架—集合
- Foundation框架: 8.OC中的集合类之三 - NSSet和NSMutableSet的基本认识
- Foundation框架: 8.OC中的集合类之三 - NSDictionary的基本认识
- Foundation框架---“集合类”
- OC基础——Foundation框架之集合型类
- 黑马程序员——Foundation框架:字符串之集合类
- 黑马程序员——Foundation框架字典、集合类、反射
- Foundation框架——集合初级
- IOS学习之Foundation框架—集合
- OC语法<4.2>:Foundation框架中的集合类-NSArray
- c#反射
- 二维数组初始化
- 红黑树的插入和遍历时间复杂度分析
- java 调用ant的自定义task,默认不是build.xml 的一点问题
- C# JSON字符串序列化与反序列化(转)
- OutMan——Foundation框架中的集合类(三)
- HDU-5336 XYZ and Drops 模拟十滴水
- OSPF进程号的意义及多进程OSPF
- ngCordova判断是否在线
- PHP session 存储方式
- matlab figure界面没有菜单栏的问题
- 每日五题(网络协议)
- IMSI与IMEI 概念
- 升初三暑假训练总结