黑马程序员----OC学习之NSDictionary及NSMutableDictionary
2015-07-02 22:09
579 查看
1.Cocoa中的实现字典的集合NSDictionary在给定的关键字(通常是一个NSString)下存储一个数值(可以是任何类型的对象)。然后你就可以用这个关键字来查找相应的数值。不同于数组,字典(也被称为散列表或关联数组)使用的是键查询的优化存储方式。它可以立即找出要查询的数据,而不需要遍历整个数组进行查找。
[NSDictionary dictionaryWithObjectsAndKeys:..] : 使用键值对儿直接创建词典对象和NSArray一样,结束必须以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的数据 。
[NSDictionary dictionaryWithObjectsAndKeys:..] : 使用键值对儿直接创建词典对象和NSArray一样,结束必须以nil结束。
[NSDictionary initWithObjectsAndKeys:..] :使用键值对儿初始化词典对象,结尾必需使用nil标志结束。
[dictionary count]: 得到词典的长度单位。
[dictionary keyEnumerator]: 将词典的所有KEY储存在NSEnumerator中,NSEnumerator很像Java语言 中的迭代器,使用快速枚举可以遍历词典中所有储存KEY值。
[dictionary objectEnumerator]: 将词典的所有value储存在NSEnumerator中,用法和上面差不多可用来遍历KEY对应储存的Value值。
[dictionary objectForKey:key]: 通过传入KEY对象可以拿到当前KEY对应储存的值。
NSArray* values = [NSArray arrayWithObjects:@"values1",@"values2",@"values3", nil]; NSArray* keys = [NSArray arrayWithObjects:@"key1",@"key2",@"key3", nil]; NSDictionary* dic2 = [NSDictionary dictionaryWithObjects:values forKeys:keys]; NSDictionary* dic = [[NSDictionary alloc] initWithDictionary:dic2]; NSLog(@"count :%lu",[dic count]); NSLog(@"%@",dic1);
2015-06-26 19:44:54.809 Nsdictonary[439:707] count :3 2015-06-26 19:44:54.817 Nsdictonary[439:707] { key1 = values1; key2 = values2; key3 = values3; }
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的数据 。
NSMutableDictionary *dic6 = [NSMutableDictionary dictionary]; //像字典中追加一个新的 key5 和 value5 [dic6 setObject:@"value5" forKey:@"key5"]; //像字典中添加整个字典对象 [dic6 addEntriesFromDictionary:dic1]; //将字典6的对象内容设置与字典1的对象内容相同 [dic6 setDictionary:dic1]; //删除键所对应的键值对 [dic6 removeObjectForKey:@"key1"]; //删除数组中的所有key 对应的键值对 NSArray *array = @[@"key1",@"key2",@"key3"]; [dic6 removeObjectsForKeys:array]; //移除字典中的所有对象 [dic6 removeAllObjects];
相关文章推荐
- NSString,NSArray和NSDictionary to JSON标准格式字符串
- NSDictionary与NSMutableDictionary的常用方法
- 黑马程序员——Foundation框架——集合类(NSSet、NSArray等)(二)
- Object-c之可变字典
- NSDictionary - NSData - NSString conversion
- IOS学习笔记(一)之常用类
- [Foundation] NSArray、NSDictionary历遍方法
- NSMutableDictionary对象用set方法初始化的键值真的不可修改吗
- 黑马程序员 OC语言 - 8 NSFileManager、NSSet、NSMutableSet
- 黑马程序员 OC语言 - 9 NSDictionary、NSMutableDictionary、NSNumber、NSDate、NSValue
- NSDictionary NSMutableDictionary的相关API总结
- OC语法<4.3> Foundation框架中的集合类-NSDictionary
- OC学习总结之数据类型
- IOS学习之NSDictionary和NSMutableDictionary详解
- Objective-C语法之NSDictionary和NSMutableDictionary
- iOS/Objective-C开发 字典NSDictionary的深复制(使用category)
- Swift3的Dictionary和OC的NSDictionary关系
- NSDictionary字典的使用以及注意
- NSMutableDictionary的别样用法
- 字典