Objective-C 语法之词典对象的那些事儿
做过 Java 语言 或者 C 语言 开发的朋友应该很清楚 关键字 map 吧,它可以将数据以键值对儿的形式储存起来,取值的时候通过 KEY 就可以直接拿到对应的值,非常方便。在 Objective-C 语言中 词典对象就是做这个事情的,不过在同一个词典对象中可以保存多个不同类型的数据,不像 Java 与 C 只能保存声明的相同类型的数据,它的关键字为 NSDictionary 与 NSMutableDictionary 。阅读过我之前文章的朋友应该从关键字的结构就可以看出这两个的区别。很明显前者为不可变词典,或者为可变词典。
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 的数据 。
词典类的存在就是为了解决在大量数据中查找方便,因为它是通过 key 直接找到 value 所以速度很快,避免一个个的遍历寻找造成的效率低下,善用字典类会帮你的程序提速噢。 哇咔咔~ 晚安各位盆友们~