NSDictionary字典

本文详细介绍Objective-C中字典的基础使用方法,包括初始化、增删改查等基本操作及遍历技巧。针对不可变字典和可变字典的不同应用场景进行说明。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//Foundation中的字典NSDictionary是由键-值对组成的数据集合。key(键)的值必须是唯一的
 
/*****************不可变字典*****************/
//字典的初始化
NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"value" forKey:@"key"];    //输出:{key = value}
NSDictionary *dic2 = [NSDictionary dictionaryWithObjects:@"v1", @"k1", @"v2", @"k2", @"v3", @"k3", nil];
NSDictionary *dic3 = [NSDictionary dictionaryWithDictionary:dic2];
 
//获取字典的数量
int count = [dic2 count];    //输出:count=3(有3组键-值对)
 
//根据键名获取其值
NSString *string = [dic2 objectForKey:@"k2"];    //输出:string=v2
 
//获取字典的所有key和value
NSArray *keyArray = [dic2 allKeys];    //输出:keyArray={k1,k2,k3}
NSArray *valueArray = [dic2 allValues];    //输出:valueArray={v1,v2,v3}
 
/****************可变字典*********************/
//创建一个字典
NSMutableDictionary *mutableDic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"v1", @"k1", @"v2", @"k2", @"v3", @"k3", nil];
 
//添加键-值对
//方式一
NSDictionary *dic4 = [NSDictionary dictionaryWithObject:@"v4" forKey:@"k4"];
[mutableDic addEntriesFromDictionary:dic4];
//方式二
【mutableDic setValue:@"object" forKey:@"k5"];
 
//创建一个空的可变字典
NSMutableDictionary *mutableDic2 = [NSMutableDictionary dictionary];
[mutableDic2 setDictionary:mutableDic];
//NSMutableDictionary *mutableDic2 = [NSMutableDictionary dictionaryWithObject:@"one" forKey:@"k"];
 
//根据键名删除元素
[mutableDic removeObjectForKey:@"k3"];
 
//删除一组键值对
NSArray *keys = [NSArray arrayWithObjects:@"k1", @"k2", @"k3", nil];
[mutableDic removeObjectsForKeys:keys];
 
//删除所有元素
[mutableDic removeAllObjects];
 
/****************遍历字典*************************/
//一般遍历
for(int index=0; index<[mutableDic count]; index++)
{
    NSString *object = [mutableDic objectForKey:[[mutableDic allKeys] objectAtIndex:index]];
    NSLog(@"%@", object);
}
 
//快速枚举
for(id key in mutableDic)
{
    NSString *object = [mutableDic objectForKey:key];
    NSLog(@"%@", object);
}
 
//通过枚举类型遍历
NSEnumerator *enumerator = [mutableDic keyEnumerator];
id key = [enumerator nextObject];
while(key)
{
    id object = [mutableDic objectForKey:key];
    NSLog(@"%@", object);
    key = [enumerator nectObject];
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值