IOS ——OC—— NSDictionary的使用总结

键与值一一对应,键不能重复;
值可以重复;
1.NSDictionary的创建:(字典的内容是无序的,不能进行排序)
 NSDictionary *dic = [NSDictionary dictionary];//创建一个空字典
       
        NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"object" forKey:@"key"];//只有一对键值的字典
        NSLog(@"%@",dic1);
       
        NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1" ,@"value2",@"key2",nil];//字典的存放是无序的(没有下标的概念)(键值,键)
        NSLog(@"%@",dic2);
   
        NSDictionary *dic3 = @{
                               @"key1":@"123",
                               @"key2":@"456",
                               @"key3":@"466"
                               };//快速创建( @“键”:@“键值” )要用大括号!
        NSLog(@"%@",dic3);
        dic3 = @{@"1":@"hguf",
                  @"2":@"dfgdsf",
                  @"3":@"vbrthf"
                };//对dic3重新初始化,并没有改变内容;
1.NSDictionary的使用:
 long int count = dic3.count;//字典的长度,键值对个数:
        NSLog(@"%zi",count);
   
        NSString *s = [dic3 objectForKey:@"2"];//获取某key对应的值;
        NSLog(@"%@",s);
        NSString *s1 = dic3[@"3"];//获取某key对应的值;
        NSLog(@"%@",s1);
       
        //遍历:
        //获取key;
      NSArray *keyarr = [dic3 allKeys];
        for(NSString *key in keyarr)
 NSLog(@"%@=%@",key,dic3[key]);
1=hguf
2=dfgdsf
3=vbrthf
        //获取值
        NSArray *valuearr = [dic3 allValues];
        for(NSString *value in valuearr)
            NSLog(@"%@",value);
   
hguf
dfgdsf
vbrthf
 
        NSEnumerator *e = [dic3 keyEnumerator];//先获取字典中key的枚举器,然后遍历该枚举器,获取key对应的值
        id k;
        while(k=[e nextObject])
            NSLog(@"%@ = %@",k,dic3[k]);
1 = hguf
2 = dfgdsf
3 = vbrthf
 
      NSEnumerator *e1 = [dic3 objectEnumerator];//获取字典中值的枚举器
        id value;
        while(value=[e1 nextObject])
 结果:           NSLog(@"%@",value);
hguf
dfgdsf
vbrthf
       
        [dic3 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {          NSLog(@"key=%@,value=%@",key,obj);
        }];//stop代表遍历停止
   运行结果:
key=1,value=hguf
key=2,value=dfgdsf
key=3,value=vbrthf

转载于:https://www.cnblogs.com/Rong-Shengcom/p/4970622.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值