美文网首页
#pragma mark 字典类

#pragma mark 字典类

作者: 向日葵_wwx | 来源:发表于2016-01-05 22:11 被阅读62次

    pragma mark 字典类

    字典的存储是一个key对应一个value,称为键值对存储,字典的存储是无序的,字面量创建字典时,key在前value在后,其他方式创建都是value—key这样对应的
    字典的添加是:[mDic setObject:@"xiAn" forKey:@“address"];
    // 1. 创建一个字典
    NSDictionary *dictionary3 = [NSDictionary dictionaryWithObjectsAndKeys:@"1",@"a",@"2",@"b",@"3",@"c", nil];

     NSDictionary *dic = @{@"2":@"3"};//字面量创建不可变字典
    
    //  2. 获取字典中所有的key,并且拿到key的个数
    NSArray *allkeys = [dictionary3 allKeys];
    NSLog(@"所有的key:%@", allkeys);
    NSLog(@"长度是:%d",(int)[allkeys count]);
    
    //  3.使用for循环遍历字典
    for (int i = 0; i < [allkeys count]; i++) {
        // 3.1 获取到key
        NSString *key = [allkeys objectAtIndex:i];//获取下标为i的key
        //3.2根据获取到的key访问value
        NSString *value = [dictionary3 objectForKey:key];//找出key的值的值,然后赋值给value
        //3.3一次输出key,value(key是目录,value是内容)
        NSLog(@"key = %@ value = %@",key,value);
        
    }
    

    pragma mark 不可变的字典

    //    创建一个不可变的字典
    NSDictionary  *dictionary = [[NSDictionary alloc]initWithObjectsAndKeys:@"zhangsan ",@"mingzi ",@"nan",@"xingbie", nil];
    NSLog(@"%@",dictionary);
    
    //  使用数组创建出字典对象
    //  1.创建出key值数组
    NSArray *keyArray = [NSArray arrayWithObjects:@"name",@"gender",@"age", nil];
    
    //  2.创建出value数值组:value值的数值元素必须和key数值元素—— ——对应
    NSArray *valueArray = [NSArray arrayWithObjects:@"zhansan",@"nan",@"23", nil];
    
    //  3.使用数组创建字典的方式,创建出一个字典对象
    NSDictionary  *dictionary1 = [[NSDictionary alloc]initWithObjects:valueArray forKeys:keyArray];
    NSLog(@"%@",dictionary1);
    
    //  4.使用一个已知的字典创建新字典
    NSDictionary  *dictionary2 = [NSDictionary dictionaryWithDictionary:dictionary1];
    NSLog(@"%@",dictionary2);
    

    pragma mark可变的字典

    // 1.创建一个可变字典
    

    //便利构造器创建
    NSMutableDictionary *mDic = [NSMutableDictionary dictionaryWithDictionary:dictionary2];

    //字面量创建可变字典
    NSMutableDictionary *mDic = [@{@"2":@"3"}mutableCopy];
    NSLog(@"%@",mDic);

    //  2.获取字典里面所有key的值,返回值是数组类型
    NSArray *keyArray1 = [dictionary allKeys];
    NSLog(@"%@",keyArray1);
    
    //  3.获取字典里面所有value的值,返回值是数组类型
    NSArray *valueArray1 = [mDic allValues];
    NSLog(@"%@",valueArray1);
    
    //  4. 在字典里面通过key值取value
    id value = [mDic objectForKey:@"name"];
    NSLog(@"%@",value);
    
    //  5. 给可变字典添加建值对的方法
    [mDic setObject:@"xiAn" forKey:@"address"];
    NSLog(@"%@",mDic);
    
    //  6.修改可变字典的value和给字典添加新建值对的方法一样,如果key值以前没有,则该方法是添加方法,如果key值以前存在,则该方法是修改value方法。
    [mDic setObject:@"0" forKey:@"age"];
    NSLog(@"%@",mDic);
    
    //   7. 删除可变字典的键值对
    // 首先根据key值来删除所对应的value
    [mDic removeObjectForKey:@"gender"];
    NSLog(@"%@",mDic);
    
    //   8.将若干个key封装在一个数组,然后作为参数传入,删除方法会根据数组中的key删除对数组中的key删除对应的value
    
    [mDic removeObjectsForKeys:[NSArray arrayWithObjects:@"address",@"name", nil]];
    NSLog(@"%@",mDic);
    
    //   9.删除字典中的全部value
    [mDic removeAllObjects];
    NSLog(@"%@",mDic);
    

    // 创建一个省,里面包含市和区
    // 1.先创建一个组定义西安的某个区,
    // 2.在创建一个组,定义西安的另一个区,
    // 3.然后创建第三个组来盛放前两个组的内容。
    // 4.在创建一个名为西安的字典key是西安,value是前两个组的内容(ar3)
    // 5.在创建一个组定义渭南的的某个区,
    // 6.在创建一个名为渭南的字典key是渭南,value是(arc)
    // 7.在创建一个组来盛放前两个字典的内容:(西安和渭南)
    // 8.在创建一个名为陕西的字典key是陕西,value是前两个字典的内容(arc1)
    // 9.最后输出内容
    NSArray *ar1 = [NSArray arrayWithObjects:@"yaTaQu",@"quMing", nil];
    NSArray *ar2 =[NSArray arrayWithObjects:@"gaoXinQu",@"quMing", nil];
    NSArray *ar3 = [NSArray arrayWithObjects:ar1,ar2 ,nil];
    NSDictionary *xiAn = [NSDictionary dictionaryWithObject:ar3 forKey:@"xiAn"];
    NSArray *arc = [NSArray arrayWithObjects:@"changYangQu",@"quMing", nil];
    NSDictionary *weiNan = [NSDictionary dictionaryWithObject:arc forKey:@"weiNan"];
    NSArray *arc1 = [NSArray arrayWithObjects:xiAn,weiNan, nil];
    NSDictionary *shengFen = [NSDictionary dictionaryWithObject:arc1 forKey:@"shanXi"];
    NSLog(@"%@",shengFen);

    相关文章

      网友评论

          本文标题:#pragma mark 字典类

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