[oc学习日记]字典

 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方法对对象属性进行赋值,但是封装进字典的键一定要和类中的属性名相同,并且数量不能超过类中的属性数量

时间: 2024-11-11 00:14:41

[oc学习日记]字典的相关文章

黑马程序员-OC学习日记-对象与方法、对象与函数

------- ios培训. android培训.java培训.期待与您交流! ---------- 一.NSString类简介 1.NSString是OC中用来表示字符串的一个类 2.NSString类创建 (1)通过字面量方式创建 NSString * str = @"要努力学习!"; (2)通过对象方法创建 NSString * str1 = [NSString alloc]; str1 = [str1 initWithUTF8String:"今天雾霾好大!"

[oc学习日记]kvc,kvo和通知

KVC键值对编码 kvc键值对编码就是在对象没有声明属性(毕竟能用点方法没几个人会再去用kvc),成员变量没有公有化,并且没有写描述方法时使用的一种给成员变量或者属性赋值的一种方式. 例如: //我们创建了一个学生类,并将其实例化 Student *stu = [[Student alloc]init]; //给学生队形的name成员变量使用kvc赋值 [stu setValue:@"ss" forKey:@"name"]; //取出使用键值对进行赋值了的name成

Python学习日记---字典

字典是Python的一种数据结构,像数学中的映射集合,可以理解为由键和值成对存在的单元构成的一个列表. 一.字典构造形式:  1.字典名 = {键名1:值1 ,键名2:值2 ,键名3:值3} 例如 :Dic = {'op':55 , 3:('a','b') , 'q':[1.25,'score',5]} 其中键只能是不可改变对象(如元组,字符串,整数等)和值可以为任意的对象 2.可以使用dict()或{}构造一个空的字典如 Dic=dict() DIc={} 二.字典的索引: 1.字典可以使用

黑马程序员-OC学习日记-继承、多态

------- ios培训. android培训.java培训.期待与您交流! ---------- 一.两个关键字self和super 1.局部变量与成员变量 (1)在方法内部可以定义与成员变量同名的局部变量. 在局部变量作用域内,会覆盖成员变量 (2)如果在方法内部定义了与成员变量同名的局部变量. 通过self访问成员变量,以区别局部变量 (3)全局变量是整个文件共享的,如果在一个方法中修改全局变量,在其他方法中使用这个全局变量都会修改 (4)就近原则: 查找顺序:局部变量  ->  成员变

[oc学习日记]单例模式

首先来了解一下单例模式的概念 单例模式就是保证系统中只存在一个对象(只有一个地址)的模式 下面我们就由一个学生类举例说明 因为要保证系统只有一个对象就要重写对象的创建方法,对象的拷贝方法 1 #import <Foundation/Foundation.h> 2 //因为要重写拷贝方法,所以要遵循拷贝协议 3 @interface Student : NSObject<NSCopying,NSMutableCopying> 4 +(id)create;//声明创建对象的方法 5 @

[oc学习日记]代理模式

何为代理模式,代理模式也成委托模式 代理模式顾名思义,就是一个人让另一个个人帮助他做某事 我们下面就用一个代购的故事为大家讲解代理模式 1.首先我们要创建一个协议,该协议具有具体功能(代购的功能) 1 #import <Foundation/Foundation.h> 2 //声明协议 3 @protocol delegate <NSObject> 4 //协议中代购的方法 5 -(void)buy; 6 @end 2.谁可以实现这个功能,就让这个类去遵循这个协议(在这个例子中,代

OC学习篇之---Foundation框架中的NSDirctionary类以及NSMutableDirctionary类

昨天学习了Foundation框架中NSArray类和NSMutableArray类:http://blog.csdn.net/jiangwei0910410003/article/details/41809719,今天来看一下Foundation框架中的NSDirctionary类,NSMutableDirctionary类,这个和Java中的Map类很想,OC中叫字典,Java中叫Map,还有字典是无序的,这个和NSArray不一样,Java中的Map也是无序的,通过hash值去检索元素的.

(转载)OC学习篇之---Foundation框架中的NSDirctionary类以及NSMutableDirctionary类

昨天学习了Foundation框架中NSArray类和NSMutableArray类,今天来看一下Foundation框架中的NSDirctionary类,NSMutableDirctionary类,这个和Java中的Map类很想,OC中叫字典,Java中叫Map,还有字典是无序的,这个和NSArray不一样,Java中的Map也是无序的,通过hash值去检索元素的. 一.NSDirctionary类 1 // 2 // main.m 3 // 19_NSDictionary 4 // 5 //

黑马程序员-OC学习笔记之Foundatio框架集合类

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.OC数组 OC数组是一个类,它也分不可变数组NSArray和可变数组NSMutableArray. 1?不可变数组的创建 // 创建一个不可变数组,元素为一个OC字符串对象 @"小桥" NSArray *array1 = [NSArray arrayWithObject:@"小桥"]; // 创建一个不可变数组,元素为多个O