一:字典的基本概念
Foundation中的字典(NSDictionary和NSMutableDictionary)是由键(key)和值(value)组成的数值集合,就像我们查字典一样,通过键(key)来查找到值(value)。
key值通常是字符串对象,也可以是任意其他类型的对象,在一个字典对象中,key值必须是唯一的。
此外字典的键和值不能为空(nil),如果想在字典中加入一个空值,可以引入NSNull对象。
注意:①字典的对象储存是没有顺序的。
②NSMutableDictionary是NSDictionary的子类,能使用其所有方法。
③NSMutableDictionary是NSDictionary的可修改版
④ 字典的值(value)可以是任何类型的对象
//例如:字典的值(value)可以是数组
NSArray *arr=@[@"1",@"2"];
NSDictionary*dict=@{
@"name" :@"Peter",
@"age" :@"18",
@"subject" :arr };
二:不可变字典(NSDictionary)
①字典的初始化
//---简便方式
NSDictionary *dict=@{
@"name":@"Peter",
@"age":@"18"
};
//---dictionaryWithObjectsAndKeys
NSDictionary*dict=[NSDictionary
dictionaryWithObjectsAndKeys:@"Peter",@"name",@"18",@"age", nil];
//---dictionaryWithObjects--forKeys
NSDictionary *dict=[NSDictionary dictionaryWithObjects:@[@"Peter",@"18"] forKeys:@[@"name",@"age"] ];
②字典的常用方法
- 输出字典key值对应的value值
//---objectForKey
NSLog(@"name--%@",[dict objectForKey:@"name"]);
//[objectForKey:@"name"]等价于dict[@"name"]
NSLog(@"name--%@",dict[@"name"]);
- 字典的遍历
//获取所有的key
[dict allKeys];
//遍历
for (NSString*key in dict.allKeys) {
NSLog(@"%@:%@",key,dict[key]);
}
三:可变字典(NSMutableDictionary)
①初始化:不可变字典的初始化方法可变字典都可以使用
//创建空字典
NSMutableDictionary*dict=[NSMutableDictionary dictionary];
②不可变字典转换成可变字典
//---mutableCopy
NSMutableDictionary*dict1=[dict mutableCopy];
//---NSMutableDictionary dictionaryWithDictionary
NSMutableDictionary*dict2=[NSMutableDictionary dictionaryWithDictionary:dict];
③增加,删除,修改字典的对象
//增加对象
[dict setObject:@"Peter" forKey:@"name"];
//等价于
dict[@"name"]=@"Peter";
//name存在则修改它的值,不存在就添加一个新的对象
//删除对象
[dict removeObjectForKey:@"name"];
//全删
[dict removeAllObjects];
//修改对象
[dict setObject:@"Peter" forKey:@"name"];
//等价于
dict[@"name"]=@"Peter";