【OC学习-19】NSDictionary字典对象的初始化以及常用操作方法归纳

本文深入探讨了Objective-C与Swift在iOS开发领域的应用,对比了两者的特点与优势,帮助开发者选择最适合的编程语言进行高效开发。

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

字典主要特征是一对一对的key和value组成,它的分类以及针对元素的操作和NSString以及NSArray的都差不多。重点在于了解一遍,具体做项目时再加深理解。

        //不可变字典
        //初始化字典,一般key值是字符串对象。空值用NSNull对象表示
        NSDictionary *dic1=[NSDictionary dictionaryWithObjects:@"value1" forKeys:@"key1"];
        NSDictionary *dic2=[NSDictionary dictionaryWithObjectsAndKeys:@"value2",@"key2",@"value3",@"key3", nil];
        NSDictionary *dic3=[NSDictionary dictionaryWithDictionary:dic1];
        
        //获取字典的数量
        NSInteger * int1=[dic2 count];
        //通过key获取value值
        NSObject *objNew=[dic2 objectForKey:@"key2"];
        //将字典的key变成一个枚举对象用于遍历
        NSEnumerator *enumerator=[dic2 keyEnumerator];
        //获取所有key的集合
        NSArray *arr1=[dic2 allKeys];
        //获取所有value的集合
        NSArray *arr2=[dic2 allValues];
        
        
        //可变字典
        //初始化,和上面的类似
        NSMutableDictionary *dic4=[NSMutableDictionary dictionary];
        NSMutableDictionary *dic5=[NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2", nil];
        
        //把一个字典加到另一个里面
        [dic4 addEntriesFromDictionary:dic1];
        
        //给字典新增元素
        [dic5 setObject:@"v3" forKey:@"k3"];
        [dic5 setDictionary:dic1];//把dic5的内容设置成dic1一样的内容
        
        //移除所有元素、根据key值一个个移除,也可把key值设置为array后,把array传递进来
        [dic5 removeAllObjects];
        [dic5 removeObjectForKey:@"k1"];
        [dic5 removeObjectsForKeys:arr1];
        
        //快速遍历方法
        for (id key in dic5) {
            id obj=[dic5 objectForKey:key];
            NSLog(@"%@",obj);
        }
        //常用遍历方法
        NSArray *aKey=[dic5 allKeys];
        int length=[aKey count];
        for (int i; i<length; i++) {
            id keyNew=[aKey objectAtIndex:i];
            id obj=[dic5 objectForKey:keyNew];
        }
        //利用Enumerator遍历
        NSEnumerator *emu1=[dic5 keyEnumerator];
        id key=[emu1 nextObject];
        while (key) {
            id obj=[dic5 objectForKey:key];
            NSLog(@"%@",obj);
            key=[emu1 nextObject];
        }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值