阳光博文 你的空间 知识的容器

OC-字典常用的方法

字典是无序的  数组是有序的 

字典分为:可变字典和不可变字典 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
--------不可变字典对象
NSDictionary * dict = [[NSDictionary alloc]initWithObjectsAndKeys:@"one",@"1",@"two",@"2",@"three",@"3",@"four",@"4", nil];
    //value = key
    //初始化必须一一对应  字典的内容是键值对   key->value  内容可以是任意的对象指针
    //key   一般是NSString *   value   可以是任意对象
    //不能出现重复的key    key是唯一的
 
NSDictionary * dict1 = [NSDictionary dictionaryWithDictionary:dict];
 
NSArray * values = [NSArray arrayWithObjects:@"one",@"two",@"three", nil];
NSArray * keys = [NSArray arrayWithObjects:@"1",@"2",@"3", nil];//key-value要一一对应
NSDictionary * dict2 = [[NSDictionary alloc]initWithObjects:values forKeys:keys];
 
[dict count]//键值对的个数    键值对必须成对出现
[dict objectForKey:@"5"]//根据key找到对应的value
 
//创建一个key的枚举器   把字典中key元素地址传给枚举器
NSEnumerator * enumer1 = [dict keyEnumerator];
id obj;
while (obj = [enumer1 nextObject]) {
    NSLog(@"%@",[dict objectForKey:obj]);
}
     
//创建值的枚举器(一般不使用,没有意义)
NSEnumerator * enumer2 = [dict objectEnumerator];
while (obj = [enumer2 nextObject]) {
     NSLog(@"%@",obj);
}
//快速枚举 枚举的是key(不能改数据,只能读)
for(id key in dict){
     NSLog(@"%@",key);
}
 
NSArray * array = [urlItemDict allValues];//获取所有value
NSArray * array = [urlItemDict allKeys];//获取所有key------可变字典对象
1
2
3
4
5
6
7
------可变字典对象
 
NSMutableDictionary * dict = [[NSMutableDictionary alloc]initWithObjectsAndKeys:@"one",@"1",@"two",@"2",@"three",@"3",@"four",@"4", nil];
         
[dict setObject:@"seven" forKey:@"7"];//增加键值对   key已经存在 则修改value        不存在则添加
[dict setObject:@"nine" forKey:@"1"];//修改value
[dict removeObjectForKey:@"1"];//删除键值对

在线咨询