OC学习笔记之NSDictionary

     

字典是面向过程语言中所没有的数据类型。字典是面向对象语言所特有的。
【NSDictionary】 不可变字典,字典一旦创建好就不可以对字典的内容做任何更改,不可添加键值对,不可以删除键值对。


 


                 创建一个不可变的字典

        /* 1.前面一个为value后面一个为key必须成对存在 

           2.key是唯一的,不能够重复,如果重复不会报错,但后出现的不会保存到字典中;

           3.字典是无顺序存在的

           4.字典的key值和value值都是对象;

         */

        

        //创建一个空字典,一般不用,因为它是不可变的,不能添加删除内容。

       NSDictionary *diction = [NSDictionarydictionary];

       NSLog(@"%@",diction);

        // 创建一个只含一个键值对的字典,注意:objectsobject keyskey的区别(英文的复数)

       NSDictionary *diction1 = [NSDictionarydictionaryWithObject:@"zhangsan"forKey:@"zs"];

       NSLog(@"%@",diction1);

        NSDictionary *dict = [[NSDictionaryalloc]initWithObjectsAndKeys:@"1",@"one",@"2",@"two",@"3",@"three",@"4",@"four",@"5",@"five",nil];

       NSLog(@"%@",dict);

        //字典以%@打印是在{}花括号内,数组是()小括号

       //打印结果

        //    key---<value

        //    five = 5;

        //    four = 4;

        //     one = 1;

        //    three = 3;

        //     two = 2;

        

        //字典键值对的个数

       NSLog(@"%lu",dict.count);// 返回NSUInteger

        

        // 快速创建一个字典  @{@"key":@"value",,,};

        NSDictionary *diction2 =@{@"zs":@"zhangsan",@"ls":@"lisi",@"bz":@"banzhang"};

       NSLog(@"%@",diction2);

        //通过已存在的字典创建字典

       NSDictionary *dict1 = [NSDictionarydictionaryWithDictionary:dict];

       NSLog(@"%@",dict1);

        

        //通过两个数组创建一个字典

       NSArray *array =@[@"one",@"two",@"three"];

       NSArray *array2 =@[@"1",@"2",@"3"];

       NSDictionary *dict2 = [NSDictionarydictionaryWithObjects:array2forKeys:array];

       NSLog(@"%@",dict2);

        

        //通过key查找对应的value

       NSLog(@"%@",[dictobjectForKey:@"two"]);

       NSLog(@"%@",dict[@"two"]);

        //创建一个枚举器通过key来遍历字典

        //1.获取所有的key

        //2.通过key获取value

        //------------------------------------------------------------------

       NSEnumerator *key = [dictkeyEnumerator];

       NSString *obj =nil;

       while (obj = [keynextObject]) {

           NSLog(@"%@-->%@",obj,[dictobjectForKey:obj]);

        }

       //快速枚举遍历

       for (NSDictionary *objin dict) {

           NSLog(@"%@-->%@",obj,[dictobjectForKey:obj]);

        }

       //快速枚举遍历

       for (NSString *keyin dict) {

           NSLog(@"key=%@,value=%@",key,[dictobjectForKey:key]);

        }

        

        //-------新方法----------- block遍历-----------key    value   stop停止

        [dictenumerateKeysAndObjectsUsingBlock:^(id key,id obj,BOOL *stop) {

           NSLog(@"%@<<<<<<<%@",key,obj);

        }];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值