[oc学习日记]字典

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

1//字典的创建2NSDictionary *d1 =[NSDictionary dictionary];3//将创建的字典的内容设置为制定的文件的内容4NSString *path =@"";//文件路径5NSDictionary *d2 =[NSDictionary dictionaryWithContentsOfFile:path];6//创建具有一个键值的字典7NSDictionary *d3 = [NSDictionary dictionaryWithObject:@"s"forKey:@"s"];8//创建具有多个键值的字典 键值对必需对应9//值在前 键在后10NSDictionary *d4 = [NSDictionary dictionaryWithObjectsAndKeys:@"ss",@"2",11@"ss",@"1",12nil];1314//利用数组创建字典15NSArray *key = @[@"2",@"3",@"4"];16NSArray *obj = @[@"ss",@"ff",@"gg"];17NSDictionary *d5 =[NSDictionary dictionaryWithObjects:obj forKeys:key];18//便捷方式19//键在前 值在后20NSDictionary *d6 =@{21@"2":@"d",22@"3":@"d"};2324//init初始化25//将初始化的字典内容设置为指定文件内容26NSDictionary *dd =[[NSDictionary alloc]initWithContentsOfFile:path];27//初始化具有多个键-值的字典(利用数组)28NSDictionary *dd1 =[[NSDictionary alloc]initWithObjects:obj forKeys:key];29//初始化具有多个键-值的字典30NSDictionary *dd2 =[[NSDictionary alloc]initWithObjectsAndKeys:31@"ss",@"2",32@"ss",@"1", nil];33343536//字典基本操作37//字典是无序的 键不可以重复 值可以重复38//返回所有键39NSLog(@"%@",[dd2 allKeys]);40//返回所有值41NSLog(@"%@",[dd2 allValues]);42//返回所有值对应的键43NSLog(@"%@",[dd2 allKeysForObject:@"ss"]);44//返回对应键的值 最常见 最重要45NSLog(@"%@",[dd2 objectForKey:@"ss"]);46//键值对47NSLog(@"%zi",dd2.count);484950//不可变字典51//创建52NSMutableDictionary *dic =[NSMutableDictionary dictionary];53//分配空间54NSMutableDictionary *dic1 = [[NSMutableDictionary alloc]initWithCapacity:10];55//创建并赋值56NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"ss",@"2",57@"ss",@"1", nil];58//添加键值对59[dic2 setObject:@"s"forKey:@"sdads"];60//删除所有键值对61[dic2 removeAllObjects];62//删除指定键对应的键值对63[dic2 removeObjectForKey:@"sd"];646566//字典的遍历67//快速遍历68for(idkeyindic2) {69NSLog(@"%@ = %@",key,[dic2 objectForKey:key]);70}71//代码块遍历72[dic2 enumerateKeysAndObjectsUsingBlock:^(idkey,idobj, BOOL *stop) {73NSLog(@"%@ %@",key,obj);74}];75//迭代器遍历76//可以输出键和值77NSEnumerator *en = [dic2 keyEnumerator];//将所有键装入数组78idkey2 =nil;79while(key2 =[en nextObject]) {80NSLog(@"%@ %@",key2,[dic2 objectForKey:key2]);81}82NSEnumerator *en1 = [dic2 objectEnumerator];//将所有值装入数组83//只可以输出值84idobj3 =nil;85while(obj3 =[en1 nextObject]) {86NSLog(@"%@", obj);87}888990//键给空值会异常 值给控制就是结束标志

补充一点:

如果将自定义的类对象封装进字典

可以用setValuesForKeysWithDictionary方法对对象属性进行赋值,但是封装进字典的键一定要和类中的属性名相同,并且数量不能超过类中的属性数量

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航