[oc学习日记]字典
2015-06-01 19:49
369 查看
//字典的创建 NSDictionary *d1 = [NSDictionary dictionary]; //将创建的字典的内容设置为制定的文件的内容 NSString *path = @"";//文件路径 NSDictionary *d2 = [NSDictionary dictionaryWithContentsOfFile:path]; //创建具有一个键值的字典 NSDictionary *d3 = [NSDictionary dictionaryWithObject:@"s" forKey:@"s"]; //创建具有多个键值的字典 键值对必需对应 //值在前 键在后 NSDictionary *d4 = [NSDictionary dictionaryWithObjectsAndKeys:@"ss",@"2", @"ss",@"1", nil]; //利用数组创建字典 NSArray *key = @[@"2",@"3",@"4"]; NSArray *obj = @[@"ss",@"ff",@"gg"]; NSDictionary *d5 = [NSDictionary dictionaryWithObjects:obj forKeys:key]; //便捷方式 //键在前 值在后 NSDictionary *d6 = @{ @"2":@"d", @"3":@"d"}; //init初始化 //将初始化的字典内容设置为指定文件内容 NSDictionary *dd = [[NSDictionary alloc]initWithContentsOfFile:path]; //初始化具有多个键-值的字典(利用数组) NSDictionary *dd1 = [[NSDictionary alloc]initWithObjects:obj forKeys:key]; //初始化具有多个键-值的字典 NSDictionary *dd2 = [[NSDictionary alloc]initWithObjectsAndKeys: @"ss",@"2", @"ss",@"1", nil]; //字典基本操作 //字典是无序的 键不可以重复 值可以重复 //返回所有键 NSLog(@"%@",[dd2 allKeys]); //返回所有值 NSLog(@"%@",[dd2 allValues]); //返回所有值对应的键 NSLog(@"%@",[dd2 allKeysForObject:@"ss"]); //返回对应键的值 最常见 最重要 NSLog(@"%@",[dd2 objectForKey:@"ss"]); //键值对 NSLog(@"%zi",dd2.count); //不可变字典 //创建 NSMutableDictionary *dic = [NSMutableDictionary dictionary]; //分配空间 NSMutableDictionary *dic1 = [[NSMutableDictionary alloc]initWithCapacity:10]; //创建并赋值 NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"ss",@"2", @"ss",@"1", nil]; //添加键值对 [dic2 setObject:@"s" forKey:@"sdads"]; //删除所有键值对 [dic2 removeAllObjects]; //删除指定键对应的键值对 [dic2 removeObjectForKey:@"sd"]; //字典的遍历 //快速遍历 for (id key in dic2) { NSLog(@"%@ = %@",key,[dic2 objectForKey:key]); } //代码块遍历 [dic2 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { NSLog(@"%@ %@",key,obj); }]; //迭代器遍历 //可以输出键和值 NSEnumerator *en = [dic2 keyEnumerator];//将所有键装入数组 id key2 = nil; while (key2 = [en nextObject]) { NSLog(@"%@ %@",key2,[dic2 objectForKey:key2]); } NSEnumerator *en1 = [dic2 objectEnumerator];//将所有值装入数组 //只可以输出值 id obj3 = nil; while (obj3 = [en1 nextObject]) { NSLog(@"%@", obj); } //键给空值会异常 值给控制就是结束标志
补充一点:
如果将自定义的类对象封装进字典
可以用setValuesForKeysWithDictionary方法对对象属性进行赋值,但是封装进字典的键一定要和类中的属性名相同,并且数量不能超过类中的属性数量
相关文章推荐
- 第十六篇 休闲的星期一
- 内存地址形式转换成可读的Crash日志文件教程
- Enable Geolocation in a WebView (Android)
- sgu-260 Puzzle
- Android:长按连续响应的Button
- js类型检测
- 指针与引用
- centos 7 virtualbox guest additions installation centos minimal
- 读写xml文件
- MCV分页实现
- 第五十九天 how can I 坚持 --------补昨天5月31号
- CSAPP 深入理解计算机系统 Buflab实验,缓冲区溢出攻击实验(3)
- VirtualBox Guest Additions on Fedora 21/20, CentOS/RHEL 7.1/6.6/5.11
- 会员卡管理系统技术解析(七)会员卡挂失记录查询
- POJ 2002 几何+hash
- Android ListView嵌套
- 关于操作系统
- sgu245:Black-White Army(技巧暴力)
- 凯云水利水电工程造价系统 (四) 配合比单价模块
- EXCEL: 数字格式不一样导致VLOOKUP无法正常使用