OC字典

OC中的字典是键值对数据集合,通过键来查找对应的值,键需唯一且不可为nil。字典适合通过特定标识快速获取数据,与数组相比,它不依赖顺序。文章介绍了字典的使用场景、初始化方式,并通过实例展示了如何用字典表达考试分数和四季特征。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字典

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);

输出结果:

object1

用字典 表达出 自己的考试分数
语文 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]);
        }

输出结果:

夏 开花
秋 结果
冬 枯萎
春 发芽
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值