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


                                        —— 如果您有不同的见解,请随时指出,期待与您的交流!——


0 0
原创粉丝点击