zoukankan      html  css  js  c++  java
  • iOS-OC-基础-NSDictionary常用方法

      1     /*=============================NSDictionary(不可变字典)的使用=========================*/
      2     
      3     //————————————————————————————————字典的创建————————————————————————————————
      4     
      5     // 前面的是值(value),后面的是键(key),一一对应
      6     // 方式一:
      7     NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:@"value",@"key",@"value1",@"key1", nil];
      8     NSLog(@"dic :%@",dic);
      9     
     10     // 方式二:
     11     NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"value",@"key",@"value1",@"key1", nil];
     12     
     13     // 字典的value可以说任何对象类型
     14     NSArray *array = @[@"11",@"22",@"33"];
     15     NSDictionary *dic2 = [[NSDictionary alloc] initWithObjectsAndKeys:array,@"key" ,nil];
     16     NSLog(@"dic2 :%@",dic2);
     17     
     18     NSDictionary *dic3 = [[NSDictionary alloc] initWithObjectsAndKeys:dic2,@"dicKey", nil];
     19     NSLog(@"dic3 :%@",dic3);
     20     
     21     // 方式三:跟方式一区分,只能是不可变字典
     22     NSDictionary *dic4 = @{@"key":@"vlaue",@"key1":@"value1"};
     23     NSLog(@"dic4 :%@",dic4);
     24     
     25     
     26     //————————————————————————————————字典的常用方法—————————————————————————————
     27     
     28     // count 字典元素的个数,键值一起为一个元素
     29     NSUInteger len =  [dic4 count];
     30     NSLog(@"len = %ld",len);
     31     
     32     //objectForKey :根据key取对应的值,如果可以没有不会报错,返回的是null
     33     id obj = [dic3 objectForKey:@"dicKey"];
     34     NSLog(@"obj:%@",obj);
     35     
     36     //allKeys 获取字典的所有key,返回的是数组
     37     NSArray *allKeys = [dic4 allKeys];
     38     NSLog(@"allKeys :%@",allKeys);
     39     
     40     //allValues 获取字典的所有Value,返回的是数组
     41     NSArray *allValues = [dic4 allValues];
     42     NSLog(@"allValues: %@",allValues);
     43     
     44     //allKeysForObject 获取相同value的所有key
     45     NSDictionary *dic5 = @{@"key":@"value",@"key1":@"value"};
     46     NSArray *allKey = [dic5 allKeysForObject:@"value"];
     47     NSLog(@"allKey :%@",allKey);
     48     
     49     
     50     /*=============================NSMutableDictionary(可变字典)的使用=========================*/
     51     
     52     //————————————————————————————————可变字典的创建————————————————————————————————
     53     
     54     // 两种方式:
     55     NSMutableDictionary *mDic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"abc",@"key",@"hhhh",@"key1", nil];
     56     
     57     NSMutableDictionary *mDic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"value",@"key",@"value1",@"key1", nil];
     58     
     59     //NSMutableDictionary *mDic2 = @{@"key":@"value",@"key1":@"value1"}; 错误:不能这样创建可变字典
     60     NSLog(@"mDic1:%@",mDic1);
     61     
     62     
     63     //————————————————————————————————可变字典的常用方法—————————————————————————————
     64     
     65     //setObject:forKey 给字典添加元素,修改元素
     66     [mDic1 setObject:@"value2" forKey:@"key2"];
     67     NSLog(@"mDic1:%@",mDic1);
     68     // 修改key 对应的元素
     69     [mDic1 setObject:@"kkkkk" forKey:@"key2"];
     70     
     71     //removeObjectForKey 移除指定键的元素
     72     [mDic1 removeObjectForKey:@"key"];
     73     NSLog(@"mDic1:%@",mDic1);
     74     
     75     // removeAllObjects 移除字典所有的元素
     76     [mDic1 removeAllObjects];
     77     NSLog(@"mDic1:%@",mDic1);
     78     
     79     // removeObjectsForKeys 移除一组键对应的元素
     80     NSArray *keys = [mDic1 allKeys];
     81     [mDic1 removeObjectsForKeys:keys];
     82     NSLog(@"mDic1:%@",mDic1);
     83     
     84     //setDictionary 将新字典替换旧字典
     85     [mDic1 setDictionary:mDic];
     86     NSLog(@"mDic1 :%@",mDic);
     87     
     88     
     89     /*===========================================字典的遍历===================================*/
     90     
     91     NSMutableDictionary *mDic3 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"abc",@"key",@"etrtr",@"key1", nil];
     92     
     93     // 1、普通遍历
     94     NSArray *allkey = [mDic3 allKeys];
     95     for (int i = 0; i < mDic3.count; i++) {
     96         
     97         NSString *key = [allkey objectAtIndex:i];
     98         NSString *value = [mDic3 objectForKey:key];
     99         NSLog(@"---%@",value);
    100     }
    101     
    102     // 2、快速遍历 obj 是字典的key
    103     for (id obj in mDic3) {
    104         
    105         NSString *value = [mDic3 objectForKey:obj];
    106         NSLog(@"==%@",value);
    107     }
    108     
    109     // 3、block 遍历
    110     [mDic3 enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
    111         
    112         NSLog(@">>%@",key);
    113         NSLog(@">>%@",obj);
    114     }];

    本文GitHub地址https://github.com/zhangkiwi/iOS_SN_NSDictionary

  • 相关阅读:
    A*算法(八数码问题)
    【第一篇:C++与opencv】图片的读取和显示
    iOS事件拦截(实现触摸任意位置隐藏指定view)
    tableview随笔
    解决UITableView中Cell重用机制导致内容出错的方法总结
    iOS 数据类型转换
    git Xcode
    ios 读取各种类型文件
    iOS学习之iOS沙盒(sandbox)机制和文件操作之NSFileManager(三)
    iOS学习之NSBundle介绍和使用
  • 原文地址:https://www.cnblogs.com/zhang-kiwi/p/5009030.html
Copyright © 2011-2022 走看看