·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> app软件开发 >> IOS开发 >> [oc学习日记]字典

[oc学习日记]字典

作者:佚名      IOS开发编辑:admin      更新时间:2022-07-23
 1         //字典的创建
 2         NSDictionary *d1 = [NSDictionary dictionary];
 3         //将创建的字典的内容设置为制定的文件的内容
 4         NSString *path = @"";//文件路径
 5         NSDictionary *d2 = [NSDictionary dictionaryWithContentsOfFile:path];
 6         //创建具有一个键值的字典
 7         NSDictionary *d3 = [NSDictionary dictionaryWithObject:@"s" forKey:@"s"];
 8         //创建具有多个键值的字典  键值对必需对应
 9         //值在前  键在后
10         NSDictionary *d4 = [NSDictionary dictionaryWithObjectsAndKeys:@"ss",@"2",
11                                          @"ss",@"1",
12                                          nil];
13         
14         //利用数组创建字典
15         NSArray *key = @[@"2",@"3",@"4"];
16         NSArray *obj = @[@"ss",@"ff",@"gg"];
17         NSDictionary *d5 = [NSDictionary dictionaryWithObjects:obj forKeys:key];
18         //便捷方式
19         //键在前 值在后
20         NSDictionary *d6 = @{
21                              @"2":@"d",
22                              @"3":@"d"};
23         
24         //init初始化
25         //将初始化的字典内容设置为指定文件内容
26         NSDictionary *dd = [[NSDictionary alloc]initWithContentsOfFile:path];
27         //初始化具有多个键-值的字典(利用数组)
28         NSDictionary *dd1 = [[NSDictionary alloc]initWithObjects:obj forKeys:key];
29         //初始化具有多个键-值的字典
30         NSDictionary *dd2 = [[NSDictionary alloc]initWithObjectsAndKeys:
31         @"ss",@"2",
32         @"ss",@"1", nil];
33         
34         
35         
36         //字典基本操作
37         //字典是无序的  键不可以重复 值可以重复
38         //返回所有键
39         NSLog(@"%@",[dd2 allKeys]);
40         //返回所有值
41         NSLog(@"%@",[dd2 allValues]);
42         //返回所有值对应的键
43         NSLog(@"%@",[dd2 allKeysForObject:@"ss"]);
44         //返回对应键的值  最常见 最重要
45         NSLog(@"%@",[dd2 objectForKey:@"ss"]);
46         //键值对
47         NSLog(@"%zi",dd2.count);
48 
49         
50         //不可变字典
51         //创建
52         NSMutableDictionary *dic = [NSMutableDictionary dictionary];
53         //分配空间
54         NSMutableDictionary *dic1 = [[NSMutableDictionary alloc]initWithCapacity:10];
55         //创建并赋值
56         NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"ss",@"2",
57                                      @"ss",@"1", nil];
58         //添加键值对
59         [dic2 setObject:@"s" forKey:@"sdads"];
60         //删除所有键值对
61         [dic2 removeAllObjects];
62         //删除指定键对应的键值对
63         [dic2 removeObjectForKey:@"sd"];
64         
65         
66         //字典的遍历
67         //快速遍历
68         for (id key in dic2) {
69             NSLog(@"%@ = %@",key,[dic2 objectForKey:key]);
70         }
71         //代码块遍历
72         [dic2 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
73             NSLog(@"%@ %@",key,obj);
74         }];
75         //迭代器遍历
76         //可以输出键和值
77         NSEnumerator *en = [dic2 keyEnumerator];//将所有键装入数组
78         id key2 = nil;
79         while (key2 = [en nextObject]) {
80             NSLog(@"%@ %@",key2,[dic2 objectForKey:key2]);
81         }
82         NSEnumerator *en1 = [dic2 objectEnumerator];//将所有值装入数组
83         //只可以输出值
84         id obj3 = nil;
85         while (obj3 = [en1 nextObject]) {
86             NSLog(@"%@", obj);
87         }
88         
89         
90         //键给空值会异常   值给控制就是结束标志

补充一点:

如果将自定义的类对象封装进字典 

可以用setValuesForKeysWithDictionary方法对对象属性进行赋值,但是封装进字典的键一定要和类中的属性名相同,并且数量不能超过类中的属性数量