【Foundation学习笔记】常用类--NSDictionary和NSMutableDictionary
2015-04-13 22:59
435 查看
一、NSDictionary(不可变字典)
1、基本概念:
键值对:一个key对应一个value,它们合称键值对
2、创建字典对象
(1)创建对象存储单个键值对
1、创建字典对象
3、删除键值对
(1)可变字典不能使用快捷方法创建,就算创建,本质也是不可变字典
6、字典遍历
(1)C语言方法
1. NSArray\NSMutableArray
* 有序
* 不可变数组可以快速创建:@[obj1, obj2, obj3]
* 快速访问元素:数组名[i]
2. NSSet\NSMutableSet
* 无序
3. NSDictionary\NSMutableDictionary
* 无序
*不可变字典可以快速创建:@{key1 : value1, key2 : value2}
* 快速访问元素:字典名[key]
1、基本概念:
键值对:一个key对应一个value,它们合称键值对
2、创建字典对象
(1)创建对象存储单个键值对
NSDictionary *dict = [NSDictionary dictionaryWithObject:@"jack" forKey:@"name"];(2)存储多个键值对
1> NSArray *keys = @[@"name", @"address"]; NSArray *objects = @[@"jack", @"北京"]; NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys]; 2> NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: @"jack", @"name", @"北京", @"address", @"584340617", @"qq", nil]; 3> 常用写法 NSDictionary *dict = @{@"name" : @"jack", @"address" : @"北京"};3、根据key访问value
(1)id obj = [dict objectForKey:@"name"]; (2)id obj = dict[@"name"];4、键值对个数
NSLog(@"%ld", dict.count);二、NSMutableDictionary(可变字典)
1、创建字典对象
NSMutableDictionary *dict = [NSMutableDictionary dictionary];2、添加键值对
// 键值对在字典中是没有顺序的 [dict setObject:@"jack" forKey:@"name"]; [dict setObject:@"北京" forKey:@"address"]; // 添加注意:同一个key又添加了一个值,那么将覆盖前面的值,一个key只能对应一个值 [dict setObject:@"rose" forKey:@"name"];
3、删除键值对
// 根据key删除键值对 [dict removeObjectForKey:@"name"]; // 删除全部键值对 [dict removeAllObjects];4、打印字典
NSLog(@"%@", dict);5、使用注意
(1)可变字典不能使用快捷方法创建,就算创建,本质也是不可变字典
NSMutableDictionary *dict = @{@"name" : @"jack"}; // 会报警因为dict的本质还是不可变字典,所以下面代码报错,不能发送消息
[dict setObject:@"rose" forKey:@"name"];(2)字典不允许有相同的key,但是允许有相同的value
6、字典遍历
(1)C语言方法
for (int i = 0; i < dict.count; i++) { NSString *key = keys[i]; NSString *object = dict[key]; NSLog(@"%@ - %@", key, object); }(2)利用block遍历键值对
[dict enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL *stop) { NSLog(@"%@ - %@", key, obj); }];三、字典数组
NSArray *persons = @[ @{@"name" : @"jack", @"qq" : @"122413", @"books" : @[@"5分钟突破iOS编程", @"5分钟Android突破编程"]}, @{@"name" : @"rose", @"qq" : @"45243"}, @{@"name" : @"jim", @"qq" : @"124513"}, @{@"name" : @"jake", @"qq" : @"1765413"} ];(1)访问数组元素
NSDictionary *jim = persons[2]; NSLog(@"%@", jim);(2)访问更深层次结构
// 先取出1位置对应的字典 // 再取出字典中qq这个key对应的value NSLog(@"%@", persons[1][@"qq"]);(3)取出books数组
NSArray *array = persons[0][@"books"]; NSLog(@"%@", array);(4)取出 5分钟Android突破编程
NSString *bookname = persons[0][@"books"][1]; NSLog(@"%@", bookname);四、总结
1. NSArray\NSMutableArray
* 有序
* 不可变数组可以快速创建:@[obj1, obj2, obj3]
* 快速访问元素:数组名[i]
2. NSSet\NSMutableSet
* 无序
3. NSDictionary\NSMutableDictionary
* 无序
*不可变字典可以快速创建:@{key1 : value1, key2 : value2}
* 快速访问元素:字典名[key]
相关文章推荐
- 【IOS 开发学习总结-OC-31】★★OC之foundation 框架——字典(NSDictionary 与 NSMutableDictionary)
- 黑马程序员--IOS学习笔记(NSDictionary、NSMutableDictionary)
- 【Foundation学习笔记】常用类--NSString和NSMutableString
- iOS阶段学习第15天笔记(NSDictionary与NSMutableDictionary 字典)
- Foundation框架学习之NSDictionary和NSMutableDictionary
- 【Foundation学习笔记】常用类--NSArray和NSMutableArray
- 【Foundation学习笔记】常用类--NSSet和NSMutableSet
- OC 学习笔记4 NSSet NSMutableSet NSDictionary NSMutableDictionary NSNumber NSValue
- Objective-C: Foundation——NSDictionary、NSMutableDictionary、Block
- OC学习笔记15--Foundation之NSArray与NSMutableArray常用方法
- Foundation框架(NSDictionary、NSMutableDictionary)
- Foundation使用示例(NSString、NSMutableString 、NSArray、NSMutableArray 、NSDictionary 、NSMutableDictionary)
- 22 Foundation框架之NSDictionary和NSMutableDictionary
- Foundation中的NSDictionary与NSMutableDictionary
- Object-C 学习笔记(十四)---Foundation之NSMutableString
- OC中Foundation框架之NSDictionary、NSMutableDictionary
- OC本学习笔记Foundation框架NSString与NSMutableString
- Objective-C:Foundation框架-常用类-NSMutableDictionary
- [Objective-C] 009_Foundation框架之NSDictionary与NSMutableDictionary
- Foundation框架中的NSDictionary 、NSMutableDictionary