//五、不可变字典
//key 通过哈希算法算出一个数作为一个索引下标,把值存到相应的位置,在内存中是散列结构,即无序
// 2016年06月27日08:57:22
//字典无法显示中文问题,建议使用类别来重写description方法。
//使用实例方法创建字典
NSDictionary *dic = [[NSDictionary alloc]initWithObjectsAndKeys:@"key1",@"value1",@"key2",@"value2",@"key3",@"value4",@"key4",@"value4",@"key5",@"value5",@"key6",@"value6", nil];
NSLog(@"实例方法字典%@",dic);
// 使用类方法创建字典 //字典中 值在前面,键在 后面
NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"姓名",@"小明",@"性别",@"男",@"学校",@"北大",@"年级",@"大三",@"奖学金",@"获得了",@"班干部",@"不是", nil];
NSLog(@"类方法字典%@",dic1);
NSDictionary *dic2 = [NSDictionary dictionaryWithObject:@"1" forKey:@"2"];
//存放键的数组
NSArray *keyArray = [NSArray arrayWithObjects:@"K1",@"K2",@"K3",nil];
//存放值的数组
NSArray *valueArray = [NSArray arrayWithObjects:@"v1",@"v2",@"v3",nil];
//把数组放进字典里
NSDictionary *dic3 = [NSDictionary dictionaryWithObjects:valueArray forKeys:keyArray];
// 体现了字典是哈希表,无序的
NSLog(@"%@",dic3);
//使用一个文件创建字典对象 新建文件步骤:command + N -> Resource -> Property List
NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:@"新建文件步骤:command + N -> Resource -> Property List"];
NSLog(@"使用文件%@",dictionary);
//获取字典中指定key的对应的value
NSString *value = [dic1 objectForKey:@"小明"];
NSLog(@"根据指定KEY值获取value:%@",value);
// 返回所有的key数组
NSArray *allKeysArray = [dic allKeys];
NSLog(@"返回所有的key数组%@", allKeysArray);
// 返回所有的value数组
NSArray *allValuesArray = [dic allValues];
NSLog(@"返回所有的value数%@", allValuesArray);
//六、创建可变字典
NSMutableDictionary *mutabledic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"mv1",@"mk1",@"mv2",@"mk2", nil];
NSLog(@"可变字典1%@",mutabledic1);
//实例方法
NSMutableDictionary *mutabledic2 = [[NSDictionary alloc]initWithObjectsAndKeys:@"mv3",@"mk3",@"mv4",@"mk4", nil];
NSLog(@"可变字典2%@",mutabledic2);
//用于整理对象的拼接
[mutabledic1 addEntriesFromDictionary:mutabledic2];
NSLog(@"用于整理对象的拼接%@",mutabledic1);
// 删除字典中某个对象
[mutabledic1 removeObjectForKey:@"mk1"];//注意后面的是KEY
NSLog(@"删除字典中某个对象%@", mutabledic1);
// 删除字典全部对象
[mutabledic1 removeAllObjects];
NSLog(@"删除字典全部对象%@", mutabledic1);
// 设置字典(把字典2放入空字典1中)
[mutabledic1 setDictionary:mutabledic2];
NSLog(@"设置字典%@", mutabledic1);