zoukankan      html  css  js  c++  java
  • OC_ NSDictionary ,NSMutableDictionary 字典

    1 数组与字典的区别

    数组: 1》存放一组有序对象的集合  

    2》 通过index下标找对应的对象  

    3》 数组中对象可以重复 

     字典: 1》存放一组无序key-value的集合 

    2》 通过key找到对应的value  

    3》字典key是唯一的,但是不同的value可以重复

    2 字典的初始化       

     使用一个类方法创建一个空字典(常用)

      NSDictionary *dic1 = [NSDictionary dictionary];

    (常用) 通过字面量去创建不可变数组和不可变字典

      NSArray *array = @[@"df", @"as"];

    NSDictionary *dic3 = @{@"年龄" : @"18", @"身高" : @"180"};// key : value

    其他方法

    NSDictionary *dic4 = [NSDictionary dictionaryWithObjectsAndKeys:@"dr", @"school", @"dl", @"loction", nil];

    NSDictionary *dic = [[NSDictionary alloc] init];

    NSDictionary *dic2 = [NSDictionary dictionaryWithObject:@"ToT" forKey:@"name"];

     3

    获取字典key-value的个数

            NSLog(@"%lu", [dic count]);

    获取字典key-value

            NSDictionary *dicKV = [NSDictionary dictionaryWithObjects:array2 forKeys:array];

            NSLog(@"%@", dicKV);

    4 可变字典

    增加key-value

            [dicM setValue:@"yellow" forKey:@"color"];// setValue forKey: value不可以为空nil  key必须为字符串

            [dicM setObject:@"black" forKey:@"otherColor"];       // setObject forKey: value可以为nil

            // 当key已经存在时,setValue会改变原来的value值

            [dicM setValue:@"black" forKey:@"color"];

            // dic[key] 修改key对应的value

            dicM[@"color"] = @"red";

    删除

            // 删除key对应的key-value

            [dicM removeObjectForKey:@"color"];

            // 删除多个key对应的value

            [dicM removeObjectForKeys:@"color", @"age"];

            // 清空字典

            [dicM removeAllObjects];

    删除字典中key对应的键值对(在forin中操作)

            NSMutableDictionary *dicTest = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Jack", @"name", @"19", @"age", @"Man", @"sex", nil];

            // 创建一个可变数组: 负责接收符合条件的key

            NSMutableArray *temp = [NSMutableArray array];

            for (NSString *key in dicTest) {

                // 判断条件

                if ([key isEqual:@"age"]) {

                    // 将符合条件的key加到temp数组中(数组存放对象)

                    [temp addObject:key];

                }

            }

            //删除存放key的数组对应的键值对

            [dicTest removeObjectsForKeys:temp];

            NSLog(@"%@", dicTest);

  • 相关阅读:
    SourceInsight宏插件3(非常好用,强力推荐)
    SourceInsight宏插件2(非常好用,强力推荐)
    Beyond Compare 3添加右键菜单
    OpenCV图像读取和写入
    TY科技的工程配置(VS2017 & Opencv4.0.0)
    Visual Studio2017 & pcl1.8.1 库的配置
    LeetCode No.198
    LeetCode No.191
    LeetCode No.190
    LeetCode No.179**
  • 原文地址:https://www.cnblogs.com/z-han49888/p/4887913.html
Copyright © 2011-2022 走看看