字典分为不可变字典(NSDictionary)和可变字典(NSMutableDictionary),其中NSMutableDictionary继承于NSDictionary
1.字典是由关键字“key”及其定义的值(value)所构成的集合,即它是由key-value组成的键值对的集合。“key”一般是字符串类型 “value”是OC中任意对象。对于字典来讲,我们就是通过key来访问value
2.数组和字典。在有大量的数据或者频繁的查找的时候,使用字典效率更高。因为字典采用键查询的优化存储方式。
3.字典里面存放的元素都要是对象类型才行。如果是基本数据类型,要先把基本数据类型进行封装,然后在存放到这些集合中去
4.在字典中键值对是无序的
下面是字典中常用的方法
1.创建一个只有一个键值对的字典
NSDictionary *dictionary1 = [NSDictionary dictionaryWithObject:@"Rick" forKey:@"name"];
2.创建一个带有多个键值对的字典
NSDictionary *dictionary2 = [NSDictionary dictionaryWithObjectsAndKeys:@"阿萨德",@"name",@25,@"age",@"GZ",@"address", nil];
3.通过一个已存在的字典来创建一个字典
NSDictionary *dictionary3 = [NSDictionary dictionaryWithDictionary:dictionary2];
4.快捷方法创建有多个键值对的字典
NSDictionary *dictionary4 = @{@"name":@"Rick",@"age":@25,@"address":@"GZ"};
5.从本地文件中获取字典
NSDictionary *dictionary5 = [NSDictionary dictionaryWithContentsOfFile:@"/Users/ibokan2/Desktop/ooo.png"];
6.从网络上获取字典
NSDictionary *dictionary6 = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:@"http://www.baidu.com"]];
7.获取字典中键值对的数量
NSUInteger count = [dictionary4 count];
8.通过key访问字典中对应的值
NSString *name = [dictionary4 objectForKey:@"name"];
或者
NSString *name1 = dictionary4 [@"name"];
9.查看字典中所有的key
NSArray *keyArray = dictionary4.allKeys;
NSLog(@"%@",keyArray);
10.查看字典中所有的value
NSArray *valueArray = dictionary4.allValues;
NSLog(@"%@",valueArray);
11.使用for循环遍历字典
for(int i = 0; i <dictionary4.count; i++)
{
NSLog(@"%@ = %@",dictionary4.allKeys[i],dictionary4.allValues[i]);
}
12. 使用for in遍历字典
NSArray *keyArray = dictionary4.allKeys;
for (NSString *key in keyArray) {
NSLog(@"%@ = %@",key,dictionary4[key]);
}
下面是可变字典独有的方法
1.增加键值对
NSMutableDictionary *mDictionary1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Rick",@"name",@25,@"age", nil];
[mDictionary1 setValue:@"Rick" forKey:@"name"];
2.修改键值对
[mDictionary1 setValue:@"Jack" forKey:@"name"]; //其实就是覆盖
3.删除指定key的对象
[mDictionary1 removeObjectForKey:@"name"];
4.删除所有对象
[mDictionary1 removeAllObjects];