OC(四)字典

作者: 社会主义顶梁鹿 | 来源:发表于2018-07-29 16:42 被阅读0次

    字典:像新华字典一样,

     根据拼音偏旁(key)查找想要的:值

     字典不是按顺序排放的

    key 是一个关键字,可以通过关键字搜索对应的内容

     NSDictionary:字典

     字典里面的内容是成对出现的(key:值)

     key是一个关键字(字符串)

     值:只要是object类型的数据都可以

     一、字典:key - 值 对应存在的 数据集合

     字典是根据 key 来取值

    key 在字典里面 是唯一的

     二、字典的赋值和初始化

     1、直接赋值

    NSDictionary *dic = @{@"key":@"值",@"key1":@"值"};

     直接取值:dic[@"key"]

     2、初始化

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

     NSDictionary *dic = [NSDictionary dictionary];

    NSDictionary *dic1 = [NSDictionary dictionaryWithObject:@"值"forKey:@"key"];

    NSDictionary *dic1 = [NSDictionary dictionaryWithObjectsAndKeys:@"zhi",@"key", nil];

     三、通过方法 取值:

     [字典名 objectForKey:@"key"];

     获得字典里面所有的值allValues

     获得字典里面所有的键allKeys

     四、可变字典:NSMutableDictionary

    --------不可变字典转换可变字典-------

    NSMutableDictionary *可变字典= [NSMutableDictionary dictionaryWithDictionary:不可变字典];

     可变字典的初始化 也不可以使用直接赋值@{};

     不可变字典的初始化方法 可变字典都可以使用

     1、添加一对元素

     [字典名 setObject:zhi forKey:key];

     2、删除元素

     删除一个元素:[字典名 removeObjectForKey:@"key"];

     删除多个元素:[字典名 removeObjectsForKeys:key的数组];

     删除全部元素:[字典名 removeAllObjects];

     3、替换 存在这个key就是替换

     [字典名 setObject:zhi forKey:key];

     4、查找

     通过key查找

     字典名[key];

     [字典名 objectForKey:@"key"];

    正文

    #pragma ----- 初始化字典并赋值-----

     //(1)直接赋值  字典直接赋值用花括号@{};

    //          key 不能一样

     NSDictionary *dic = @{@"key":@"值",@"key1":@"值"};

    //字典嵌套字典

    NSDictionary *dic = @{@"age":@"20",@"Like":@{@"Sports":@"PingPang",@"Art":@"SuMiao",@"Music":@"Sing"}};

     //打印出来的结果用花括号引起来,每个元素后面都有一个分号;都是成对出现。

     NSDictionary *size2 = @{@"name":@"磊欧巴",@"age":@"21",@"face":@"鹅蛋脸",@"height":@"178",@"sex":@"男",@"weight":@"60"};

            NSLog(@"%@",size);

     NSLog(@"%@",size2);

    #pragma --------字典取值----

    // 在同一个字典里面  key必须是唯一的

    // 可以通过key取值

    // 公式:字典名【@“key名”】

    //        NSString *name = size2[@"name"];

    //        NSLog(@"%@",name);

    #pragma ----遍历字典------

    //需要所有的key

    //allkey 可以获得字典里面所有的key

    //allValues 可以获得字典里面所有的值

    NSArray *allkey = size2.allKeys;

     for (NSString *key in allkey) {

     NSLog(@"%@ = %@",key,size2[key]);

            }

    #pragma --------其他初始化方式----

    NSDictionary *dic = [NSDictionary dictionary];

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

    //‼️‼️‼️‼️‼️值和key要成对出现,先写值,key每对元素也是用逗号分开

    NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"值",@"key",@"值2",@"key",nil];

    //字典取值的方法 objectForKey

    NSString *value = [dicobjectForKey:@"key"];

    NSDictionary *baby = [NSDictionary dictionaryWithObjectsAndKeys:@"磊欧巴",@"name",@"sleep",@"like",@"安以轩",@"love", nil];

     NSDictionary *boy = [NSDictionary dictionaryWithObjectsAndKeys:@"高傻",@"name",@"ha",@"like",@"hahaha",@"love", nil];

    NSString *value = [baby objectForKey:@"name"];

    NSString *value1 = [boy objectForKey:@"name"];

    NSLog(@"%@",value);

    NSLog(@"%@",value1);

    for (NSString *key in boy.allKeys) {

    NSLog(@"%@ = %@",key,boy[key]);

                    }

    #pragma ------初始化,并且附一个值---

     NSDictionary *dic = [NSDictionary dictionaryWithObjects:@"值"forKeys:@"key"];

    #pragma ------可变字典 赋值----

    //不可以直接赋值@{};

      (1) NSMutableDictionary *dic = [NSMutableDictionary dictionary];

      (2) NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];

    #pragma --------可变字典 增-----

    //添加相同的key 会覆盖原有的key的值

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

    [dic setObject:@"内容:背着书包去上学"forKey:@"content"];

    [dic setObject:@"高傻"forKey:@"name"];

    NSLog(@"%@",dic);

    #pragma ---------可变字典 删----

    //指定key 删除key对应的值

    //删除一个

    [dic removeObjectForKey:@"key"];

    //删除多个

    [dic removeObjectsForKeys:@"key1",@"key2"];

    //会移除数组里面所有key对应的值

    NSArray *keys = @[@"content",@"name"];

    [dic removeObjectsForKeys:keys];

    NSLog(@"%@",dic);

    #pragma --------可变字典 改--------

    //修改和添加一样 如有有相同的key就是覆盖 没有的话就是添加

    [a setObject:@"一个雨夜" forKey:@"相同的key"];

    #pragma ------可变字典 查----

    相关文章

      网友评论

        本文标题:OC(四)字典

        本文链接:https://www.haomeiwen.com/subject/clxtvftx.html