一:字典的基本概念数组
Foundation中的字典(NSDictionary和NSMutableDictionary)是由键(key)和值(value)组成的数值集合,就像咱们查字典同样,经过键(key)来查找到值(value)。spa
key值一般是字符串对象,也能够是任意其余类型的对象,在一个字典对象中,key值必须是惟一的。对象
此外字典的键和值不能为空(nil),若是想在字典中加入一个空值,能够引入NSNull对象。rem
注意:①字典的对象储存是没有顺序的。 字符串
②NSMutableDictionary是NSDictionary的子类,能使用其全部方法。 it
③NSMutableDictionary是NSDictionary的可修改版 io
④ 字典的值(value)能够是任何类型的对象 table
//例如:字典的值(value)能够是数组object
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"] ];
②字典的经常使用方法
//---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";