OC 学习笔记6 NSDictionary

这篇博客详细介绍了OC中的NSDictionary对象,包括字典的创建、判断键值对数目以及通过键查找值的方法。通过实例展示了如何创建单个和多个键值对的字典,并使用count函数获取键值对的数量。此外,还讲解了如何通过单个键查找值,获取所有键值,以及通过多个键查找多个值的操作。

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

OC 学习笔记6 NSDictionary

字典对象

字典(dictionary)是一些元素的集合。每个元素有一个称作key 的域,不同元素的key 各不相同。有关字典的操作有:插入具有给定关键字值的元素、在字典中寻找具有给定关键字值的元素、删除具有给定关键字值的元素。 --百度百科

字典对象就是形如:*dict = @{@“Alice”: @“2341”, @“Beth”: @“9102”,@“Cecil”?“3258”};
这样的元素集合。

它与数组不同之处是:
数组元素的存储是连续的;
而字典的存储是分散的。

字典的创建

1、创建只有单个键值对的字典

NSDictionary *a = [NSDictionary dictionaryWithObject:@"value1" forKey:@"key1"];
NSLog(@"%@",a);

输出结果为: key1 = value1

2、创建只有多个键值对的字典

//通过数组对象来创建字典
NSDictionary *a = [NSDictionary dictionaryWithObjects:b forKeys:c];
NSArray *b = [NSArray arrayWithObjects:@"value1",@"value2",nil];
NSArray *c = [NSArray arrayWithObjects:@"key1",@"key2",nil];

//通过dictionaryWithObjectsAndKeys函数创建
NSDictionary *a = [NSDictionary dictionaryWithObjectsAndKeys:
@"value1",@"key1",
@"value2",@"key2",
nil];

//直接创建字典
NSDictionary *a = @{
@"key1":@"value1",
@"key2":@"value2",
}
//注意:直接创建的键值对位置与前面用函数创建的键值对位置是不同的

判断键值对数目

运用count函数

NSDictionary *a = @{
@"key1":@"value1",
@"key2":@"value2",
}

int count = (int)[a count];
NSLog(@"%d",count);

答案是:2。

查找/得到值(value),键(key)

1、通过单个键,查找单个值。

NSDictionary *a = @{
@"key1":@"value1",
@"key2":@"value2",
}

NSString *value = [a valueForKey:@"key1"];
NSString *value = [a objectForKey:@"key1"];
//2个方法一样
NSLog(@"%@",value);

答案是:{
value1
}

2、查找所有值(键)。

NSDictionary *a = @{
@"key1":@"value1",
@"key2":@"value2",
}

NSArray *all = [a allValues];
//键函数为:allKeys
NSLog(@"%@",all);

答案是:{
value1,
value2
}

3、通过多个键,查找多个值。

NSDictionary *a = @{
@"key1":@"value1",
@"key2":@"value2",
}

NSArray *arr = [a objectsForKeys:[NSArray arrayWithObjects:@"key1",@"key2",@"key3",nil]
notFoundMarker:@"not found"];       
//若没有找到对应的值,则返回这个对象
NSLog(@"%@",arr);

答案是:{
value1,
value2,
“not found”
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值