字典是无序的 数组是有序的
字典分为:可变字典和不可变字典
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"
];
//删除键值对
|