Objective-C研究之词典对象学习(八)
来源:互联网 发布:mysql自动断开 编辑:程序博客网 时间:2024/05/21 05:40
做过Java语言 或者 C语言 开发的朋友应该很清楚 关键字map 吧,它可以将数据以键值对儿的形式储存起来,取值的时候通过KEY就可以直接拿到对应的值,非常方便。在Objective-C语言中 词典对象就是做这个事情的,不过在同一个词典对象中可以保存多个不同类型的数据,不像Java与C 只能保存声明的相同类型的数据,它的关键字为NSDictionary与NSMutableDictionary。阅读过我之前文章的朋友应该从关键字的结构就可以看出这两个的区别。很明显前者为不可变词典,或者为可变词典。对数组对象不明白的请看上一章Objective-C研究院之数组对象学习(七)
1.创建不可变词典
[NSDictionary dictionaryWithObjectsAndKeys:..] : 使用键值对儿直接创建词典对象,结尾必需使用nil标志结束。
[NSDictionary initWithObjectsAndKeys:..] :使用键值对儿初始化词典对象,结尾必需使用nil标志结束。
[dictionary count]: 得到词典的长度单位。
[dictionary keyEnumerator]: 将词典的所有KEY储存在NSEnumerator中,NSEnumerator很像Java语言 中的迭代器,使用快速枚举可以遍历词典中所有储存KEY值。
[dictionary objectEnumerator]: 将词典的所有value储存在NSEnumerator中,用法和上面差不多可用来遍历KEY对应储存的Value值。
[dictionary objectForKey:key]: 通过传入KEY对象可以拿到当前KEY对应储存的值。
2.创建可变词典对象
NSMutableDictionary 是NSDictionary的子类,所以继承了NSDictionary的方法。
[NSMutableDictionary dictionaryWithCapacity:10] : 创建一个可变词典初始指定它的长度为10.,动态的添加数据如果超过10这个词典长度会自动增加,所以不用担心数组越界。
[NSMutableDictionary initWithCapacity:10] :只是初始化一个词典的长度为10。
[dictionary setObject:@"雨松MOMO" forKey:@"name"] :向可变的词典动态的添加数据 ,这里的key是name 值是雨松MOMO。如果词典中存在这个KEY的数据则直接替换这个KEY的值。
[dictionary removeAllObjects..] : 删除掉词典中的所有数据。
[dictionary removeObjectForKey..] :删除掉词典中指定KEY的数据 。
[dic allKeys]:得到词典对象的所有键
[dic allValues]:得到词典对象所有键对应的值
词典类的存在就是为了解决在大量数据中查找方便,因为它是通过key直接找到value所以速度很快,避免一个个的遍历寻找造成的效率低下,善用字典类会帮你的程序提速噢。
- Objective-C研究之词典对象学习(八)
- Objective-C研究院之词典对象(八)
- Objective-C研究院之词典对象(八)
- Objective-C 词典对象(八)
- Objective-C语法之词典对象的那些事儿(八)
- Objective-C语法之词典对象的那些事儿(八)
- Objective-C语法之词典对象的那些事儿(八)
- Objective-C研究之Object对象学习
- Objective-C语法之词典对象
- iOS开发之Objective-C语法之词典对象
- iOS开发之Objective-C语法之词典对象
- iOS开发之Objective-C语法之词典对象
- Objective-C 语法之词典对象(NSDictionary/NSMutableDictionary)
- Objective-C研究之static关键字学习(六)
- Objective-C研究之NSMutableString学习
- Objective-C 基础知识之(八):NSSet
- objective-c(八)-面向对象之继承
- objective-c基础语法学习之--(7)拷贝对象
- 读360SDK心得
- 权限android.permission.WRITE_EXTERNAL_STORAGE 内外置sd卡写权限
- 高精度(大数)的四则运算与逻辑运算---c++ struct版
- 实战Jquery(二)--可以编辑的表格
- 第二周工作报告
- Objective-C研究之词典对象学习(八)
- 获取鼠标点击兼容实现
- fork子进程时和父进程之间的文件描述符的问题
- Openstack前传八(KVM高级特性)
- 心在下雨
- 25 A Famous Music Composer
- probe如何被调用
- 燃烧的下午
- UIWebView 获取内容高度