//三.字典
//NSdictionary
//字典是用来存储数据,以键值对的形式存储
//key : value
//字典由多个键值对构成
//一般用在网络数据解析
//1.创建字典 @{} 代表字典
//value 是任意一个对象,包括数组和字典等
//打印时{}代表字典 ,[]代表数组
NSDictionary *dic0=@{@"users":@"1000000"};
NSDictionary *dic1=@{@"name":@"ZhangFei",@"sex":@"M",@"tel":@"188",@"dddc":dic0};
NSLog(@"dic1=%@",dic1);
//从字典中拿数据
// 1.使用[key]的形式获取value
NSString *name=dic1[@"name"];
NSLog(@"name=%@",name);
// 使用方法获取数组数组元素
NSString *name2=[dic1 objectForKey:@"name"];
NSLog(@"name2=%@",name2);
//2.多级字典取值
NSDictionary *dic2=@{@"dict":dic1,@"other":@"other things"};
NSLog(@"dic2=%@",dic2);
NSString *tel =dic2[@"dict"][@"tel"];
NSLog(@"tel=%@",tel);
//三层字典
NSString *user=dic2[@"dict"][@"dddc"][@"users"];
NSLog(@"user=%@",user);
//4.可变字典
//NSMutableDictionary
//使用可变字典首先分配内存
//注意点:字典中的键值是无序的
NSMutableDictionary *madic=[NSMutableDictionary dictionaryWithCapacity:10];
//添加键值对
//遵守NScopying协议的常见类
//NSString,NSnumber
[madic setObject:@"zhangfei" forKey:@"name"];
[madic setObject:@"M" forKey:@"sex"];
[madic setObject:@"1777" forKey:@"tel"];
[madic setObject:@"beijing" forKey:@"address"];
NSLog(@"madic=%@",madic);
// //移除键值对(removeObjectForKey:),根据key移除相应的键值对
[madic removeObjectForKey:@"sex"];
NSLog(@"madic=%@",madic);
NSLog(@"字典键值对的个数:%lu",madic.count);
//获取一个字典的所有key和value
NSArray *allKeys=[madic allKeys];
for (NSString *key in allKeys)
{
//根据拿到的key去获取字典中的值
id value=madic[key];
NSLog(@"key=%@,value=%@",key,value);
}