OC学习--字典的使用

本文详细介绍了Objective-C中的字典类型,包括不可变字典(NSDictionary)和可变字典(NSMutableDictionary)。讲解了字典的基本概念、创建方式、常用操作如获取键值对数量、通过键获取值、返回所有键或值等,并演示了如何使用可变字典进行键值对的添加、设置和删除。

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

字典(Dictionary)

1、字典是OC中特有的类型,用于存放OC的对象

2、字典中的对象是没有顺序的

3、字典中的对象是以【键值对】的形式出现的

4、键是为了查找值而存在的,是为了快速的查找到值

5、任何对象都可以作为键,但是常用字符串作为键

6、key是唯一的不可能出现多个相同的key

OC中字典分为不可变字典(NSDictionary)和可变字典(NSMutableDictionary)


一、不可变字典(NSDictionary)

1、创建

① 、NSDictionary *dic1 = [[NSDictionary alloc] initWithObjectsAndKeys:@"one",@"1",@"two",@"2",@"three",@"3", nil];

//其中:@"one",@"1"@"two",@"2"@"three",@"3"是三个不同的键值对 @"1",@"2",@"3"是键,@"one",@"two",@"three"是值

②、直接创建

NSDictionary *dic3 = @{@"1":@"Mon",@"2":@"Tue",@"3":@"Wed"};


③、通过所有的键和所有的值创建

NSDictionary *dic4 = [[NSDictionary alloc] initWithObjects:values forKeys:keys];


④、通过一个字典创建另一个字典


NSDictionary *dic5 = [NSDictionary dictionaryWithDictionary:dic4];


2、返回键值对个数

NSUInteger count = [dic3 count];


3、通过键返回值

NSString *str = [dic2 objectForKey:@"2"];


词典类的存在就是为了解决在大量数据中查找方便,因为它是通过 key 直接找到 value 所以速度很快,避免一个个的遍历寻找造成的效率低下,善用字典类会帮 你的程序提速。


4、返回所有的键或值

//返回所有的键

NSArray *keys = [dic1 allKeys];

//返回所有的值

NSArray *values = [dic1 allValues];


5、快速枚举遍历字典

for (id obj in dic3) {

//遍历字典只能遍历键,可以通过键找到值

NSLog(@"%@", [dic3 objectForKey:obj]);

}


二、可变字典(NSMutableDictionary)


           NSMutableDictionary NSDictionary的子类,所以继承了NSDictionary的方法。

  

  NSMutableDictionary*dict=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"1",@"one",@"2",@"two",@"3",@"three",@"4", @"four", nil];


1、设置字典


[mDic setDictionary:@{@"1":@"A",@"2":@"B"}];


2、添加或设置键值对

[mDic setValue:@"C" forKey:@"3"];

//若添加的键值对的键不存在,则会直接添加

[mDic setValue:@"D" forKey:@"3"];

//若添加的键值对的键已存在,则会修改该键对应的值


3、删除键值对

//根据键删除对应的键值对

[mDic removeObjectForKey:@"2"];

//删除某个数组中包含的键对应的键值对

[mDic removeObjectsForKeys:@[@"1",@"2"]];

//删除所有的键值对

[mDic removeAllObjects];














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值