字典
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]);
}
输出结果:
夏 开花
秋 结果
冬 枯萎
春 发芽