oc学习之Foundation框架--字典类

本文详细介绍了Objective-C中的字典类NSDictionary和NSMutableDictionary的使用方法,包括创建、获取、修改及遍历字典等内容,并提供了丰富的代码示例。

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

接下来要总结的是oc中的集合类(NSArrayNSDictionary以及NSSet)中的NSDictionary:

oc字典有两种:NSDictionary(不可变的字典类)NSMutableDictionary(可变的字典类),其中NSMutableDictionary NSDictionary 的子类


字典是由键值对(key-value)的形式存储的。

注意事项:

1.key 值唯一,通过key值可以唯一的获取到对应的value值。

2.字典中的键值对是没有顺序的,所以不能通过索引获取,只能通过key值获取。        

3.key值和value值都必须是oc对象

4.key值必须是遵守了<NSCopying>协议的对象。


//NSDictionary

//创建一个包含一组键值对的不可变的字典

  NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"mary" forKey:@"name"];


//获取数据,根据key

  NSString *nameString = [dic1 objectForKey:@"name"]; //值是mary


//创建一个不可变的包含多组键值对的字典:先写value,在写key

  NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@“mary”, @"name", @(21), @"age", nil];


//将另一个字典中的内容都存到字典中

  NSDictionary *dic3 = [NSDictionary dictionaryWithDictionary:dic2];


//valuekey存到不同的数组中,但要注意两个数组中keyvalue一一对应

  NSArray *ary1 = @[@(12),@"asd"];

  NSArray *ary2 = @[@"age",@"name"];

  NSDictionary *dic4 = [NSDictionary dictionaryWithObjects:ary1 forKeys:ary2];


//快速创建不可变的字典 @{ key1:value1, key2:value2… }

        NSDictionary *dic5 = @{

                               @"name" : @“mary”,

                               @"age" : @(23),

                               @"sex" : @""

                               };


//获取字典中的内容

  id name2 = dic5[@"name"];//值是mary

  或者这样写 [dic5 objectForKey:@"sex"]


//获取键值对的个数

  NSUInteger count = dic5.count;//也可以写成[dic5 count]


//获取所有的key

  NSArray *keysAry = [dic5 allKeys]; 


//所有的value      

  NSArray *valueAry = [dic5 allValues]; 


//字典遍历

//1.先获取所有的key值,遍历key值数组,依次获取value值。

    for (id key in keysAry) {

            NSLog(@"key:%@  value:%@",key,[dic5 objectForKey:key]);

    }


//2.for-in快速遍历

    for (id obj in dic5) {

            NSLog(@"key:%@  value:%@",obj, [dic5 objectForKey:obj]);

    }


//NSMutableDictionary

//创建一个空的可变的字典,可以在后面添加键值对

  NSMutableDictionary *muDic1 = [NSMutableDictionary dictionary];

        

//创建一个有键值对的可变字典

  NSMutableDictionary *muDic2 = [NSMutableDictionary dictionaryWithDictionary:@{                                                                                      @"name" : @“mary”,                                                                                     @"age" : @(12),                                                                                     @"sex" : @“girl”                                                                                      }];


//添加键值对

  [muDic2 setObject:@"wq" forKey:@"name2"];

        

//当多次对同一个key赋值时,会保留最后一次的值

  [muDic2 setObject:@"dd" forKey:@"name2"];


//删除

  [muDic1 removeAllObjects]; //删除全部

  [muDic2 removeObjectForKey:@"sex"]; //根据key删除键值对

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值