zoukankan      html  css  js  c++  java
  • oc76--NSMutableDictionary

    //
    //  main.m
    //  NSMutableDictionary
    //  NSDictionary不可变,初始化后就不可以修改,NSMutableDictionary可变,初始化后可以改变。
    //
    
    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[]) {
    
        // 1.创建一个空的字典
        NSMutableDictionary *dictM = [NSMutableDictionary  dictionary];
        NSLog(@"%@", dictM);// {}
        // 2.如何添加
        [dictM setObject:@"lnj" forKey:@"name"];
        NSLog(@"%@", dictM);// {name = lnj;}
        // 会将传入字典中所有的键值对取出来添加到dictM中
        [dictM setValuesForKeysWithDictionary:@{@"age":@"30", @"height":@"1.75"}];
        NSLog(@"%@", dictM);// {age = 30;height = "1.75";name = lnj;}
    
        // 3.如何获取
        NSLog(@"name = %@", dictM[@"name"]);//lnj
        
        // 4.如何删除
        [dictM removeObjectForKey:@"name"];
        NSLog(@"%@", dictM);//{age = 30;height = "1.75";}
        [dictM removeObjectsForKeys:@[@"age", @"height"]];
         NSLog(@"%@", dictM);//{}
        // 5.如何修改
        // 如果利用setObject方法给同名的key赋值, 那么新值会覆盖旧值
        [dictM setObject:@"88" forKey:@"age"];
        dictM[@"age1"] = @"881";
        NSLog(@"%@", dictM);//{age = 88;age1 = 881;}
        
        
        // 1.不能使用@{}来创建一个可变的字典
        NSMutableDictionary *dictM = @{@"name":@"lnj"}; //报错
        [dictM setObject:@"30" forKey:@"age"];
        
        
        // 2.如果是不可变数组, 那么key不能相同
        // 如果是不可变字典出现了同名的key, 那么后面的key对应的值丢弃。
        // 如果是在可变字典中, 后面的会覆盖前面的
        NSDictionary *dict = @{@"name":@"lmj", @"name":@"lnj"};
        NSLog(@"dict = %@", dict);//{name = lmj;}
        
        NSMutableDictionary *dictM1 = [NSMutableDictionary dictionaryWithObjects:@[@"lmj", @"lnj"] forKeys:@[@"name", @"name"]];//{name = lnj;}
        NSLog(@"dict = %@", dictM1);
        
        return 0;
    }
  • 相关阅读:
    【R】爬虫案例
    [R] 保存pheatmap图片对象到文件
    [R] 添加误差棒的分组折线图:geom_path: Each group consists of only one observation. Do you need to adjust the...
    [R] read.table/read.delim读入数据行数变少?
    [R] cbind和filter函数的坑
    [R]在dplyr函数的基础上编写函数(3)tidyeval
    [R]在dplyr基础上编写函数(2)substitute和quote
    30个Java知识点
    Java的30个知识点
    40个知识点
  • 原文地址:https://www.cnblogs.com/yaowen/p/7441052.html
Copyright © 2011-2022 走看看