OC字典
2015-10-06 18:07
337 查看
字典
Foundation中的字典(NSDictionary,NSMutableDictionary)是由键-值对组成的数据集合.正如,我们在字典里查找单词的定义一样.通过key(键),查找的对应的value(值),key通常是字符串对象,也可以是其他任意类型对象.在一个字典对象中,key的值必须是唯一的.
此外,字典对象的键和值不可以为空(nil),如果需要在字典中加入一个空值,可以加入NSNull对象
为什么要使用字典?而不是使用数组
-数组特性: 是按一定顺序去排列的集合,通过下标去存取值(当期望数据是按一定的顺序排列的时候 ,选择使用数组)-字典特征: 通过key 存取值 key是一个标记 (获取一个具体的标识 准确的得到咱们想要的值)
-key value 是成对出现的
初始化字典的方式
NSDictionary *dic = [[NSDictionary alloc]init]; //1.初始化一个空字典 NSDictionary *dic1 = [NSDictionary dictionary]; //2。初始化一个空字典 //通过key 我们可以取到Value值 NSDictionary *dic2 = [NSDictionary dictionaryWithObject:@"value" forKey:@"key"]; //3.初始化的同时 添加一对键值 NSDictionary *dic3 = [NSDictionary dictionaryWithObjectsAndKeys:@"Object",@"Key",@"Object1",@"Key1", nil];//4.初始化的同时添加多对键值 //前面的object 是值 可以是任意类型 后面是key 必须是字符串
字典的新写法
前面是key 是键 后面是object 是值 NSDictionary *dic4 = @{@"key":@"object",@"key1":@"object1"}; NSDictionary *dic5 = @{@"key":@"值",@"key1":@"值1"}; 字典取值 //1. ObjectForKey : 通过key取字典里面的值 NSString *string = [dic4 objectForKey:@"key"]; NSLog(@"%@",string); //2.取字典值 字典名[@"key"]; NSString *string1 = dic5[@"key1"]; NSLog(@"%@",string1);
输出结果:
object 值1
用字典 表达出 自己的考试分数
语文 70分 数学 95分 英语 60分
分别取出语文 数学 英语的成绩
NSDictionary *dic6 = [NSDictionary dictionaryWithObjectsAndKeys:@"70",@"语文",@"95",@"数学",@"60",@"英语", nil]; NSString *string = [dic6 objectForKey:@"语文"]; NSString *string1 = [dic6 objectForKey:@"数学"]; NSString *string2 = [dic6 objectForKey:@"英语"]; NSLog(@"语文成绩是%@",string); NSLog(@"数学成绩是%@",string1); NSLog(@"英语成绩是%@",string2);
输出结果:
语文成绩是70 数学成绩是95 英语成绩是60
用字典 表达出 一年四季的特征 分别取出每个季节的特征
NSDictionary *season = [NSDictionary dictionaryWithObjectsAndKeys:@"发芽",@"春",@"开花",@"夏",@"结果",@"秋",@"枯萎",@"冬", nil]; //allkeys 是所有的 key 的一个数组 //遍历字典的全部键值 key值 for (NSString *key in season.allKeys) { NSLog(@"%@ %@", key ,[season objectForKey:key]); }
输出结果:
夏 开花 秋 结果 冬 枯萎 春 发芽
相关文章推荐
- dynamic_cast与typeid关键字
- 主从服务器同步
- foj 犯罪嫌疑人 (脑洞题_)
- 百度2016研发工程师在线编程题
- iOS:多线程同步加锁的简单介绍
- hdu 5428 The Factor 找质因子
- 关于@RequestBody 不能json to pojo
- 堆区、栈区和静态存储区详解
- 大龄屌丝自学笔记--Java零基础到菜鸟--024
- A protocol error occurred. Change of username or service not allowed
- MFC打开一个文件方法汇总
- 遇到1045-Access denied for user 'root'@'localhost' 的问题
- 位运算符 -- 练习篇
- POJ 2001 Shortest Prefixes(字典树)
- oc MRC初步认识
- Properties类(一)
- gethostbyname() -- 用域名或主机名获取IP地址
- 位运算符
- java 8函数式编程与Lambda表达式
- [经济学原理|微观部分]市场失灵与政府调节