【Foundation学习笔记】常用类--NSDictionary和NSMutableDictionary
来源:互联网 发布:js splice函数 编辑:程序博客网 时间:2024/05/23 23:20
一、NSDictionary(不可变字典)
1、基本概念:
键值对:一个key对应一个value,它们合称键值对
2、创建字典对象
(1)创建对象存储单个键值对
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、删除键值对
(1)可变字典不能使用快捷方法创建,就算创建,本质也是不可变字典
6、字典遍历
(1)C语言方法
// 根据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对应的valueNSLog(@"%@", 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]
0 0
- 【Foundation学习笔记】常用类--NSDictionary和NSMutableDictionary
- Foundation框架学习之NSDictionary和NSMutableDictionary
- Foundation 之 NSDictionary和NSMutableDictionary
- [OC学习笔记]NSDictionary、NSMutableDictionary常用方法
- 黑马程序员——Foundation学习—-----NSDictionary和NSMutableDictionary
- 22 Foundation框架之NSDictionary和NSMutableDictionary
- NSDictionary和NSMutableDictionary常用用法
- Foundation框架 - NSDictionary类、NSMutableDictionary类
- 【Foundation Frame】NSDictionary/NSMutableDictionary
- iOS笔记 -(NSDictionary和NSMutableDictionary常用方法总结)
- iOS 学习笔记4-NSDictionary 和 NSMutableDictionary
- Objective-c的Foundation中常用类4——字典NSDictionary、NSMutableDictionary
- NSDictionary和NSMutableDictionary类常用方法的使用
- 黑马程序员——Foundation学习之NSDictionary\NSMutableDictionary
- Foundation中的NSDictionary与NSMutableDictionary
- Foundation框架中的NSDictionary 、NSMutableDictionary
- 【黑马程序员】【Foundation框架】字典NSDictionary和NSMutableDictionary
- 【黑马程序员】OC-Foundation框架—NSDictionary和NSMutableDictionary
- 写给女友的JS教程—之JS闭包
- 怎么访问一个整型数里面的各个字节
- 解决genymotion Qt版本的问题
- 堆和栈的区别(转过无数次的文章)
- 图例操作
- 【Foundation学习笔记】常用类--NSDictionary和NSMutableDictionary
- C++ 排序函数 sort(),qsort()的用法
- JSTL标签库中<c:choose></c:choose>不能放JSP页面<!-- -->注释
- mips语法入门
- 写在前面
- oj模板库(慢慢存储,主要是刚刚开始学习oj。发现身边好多人都有一个很好的模板库)
- CAP理论系列
- 在Ubuntu 14.04LTS版上以git方式源码安装odoo8.0(新手教程)
- qt编译cocos2dx中的CMakeLists.txt解读