OC中的字典NSDictionary与NSMutableDict

作者: 徊家喂猪 | 来源:发表于2016-03-29 23:49 被阅读682次

    不可变字典(NSDictionary)与可变字典(NSMutableDictionary)

    由于json数据格式与OC中的字典和数组很像,因此经常使用字典来接收解析服务器端请求回的json数据。

    一、不可变字典的创建

    1)初始化方法创建

    NSDictionary *dic1 = [[NSDictionary alloc] initWithObjectsAndKeys:@"张三", @"name", @"男", @"gender", @"16", @"age", nil];
    

    2)便利构造器创建

    NSDictionary *dic2 = [NSDictionary dictionaryWithObjectsAndKeys:@"大连", @"city", @"75", @"id",@"www.dalian.com/shahekou.jpg", @"image", nil];
    

    3) 字面量方式

    NSDictionary *dic3 = @{@"date" : @"2016-03-21", @"content" : @"春分", @"imageURL" : @"www.baidu.com/image/spring.png"};
    

    ps:字典是无序的,键值对不分先后

    二、字典常用方法

    // 1) 获取字典中键值对个数
    NSUInteger num = [dic1 count];
    
    NSLog(@"%lu", num);
    
    // 2) 获取字典中所有的键
    NSArray *array = dic1.allKeys; // [dic1 allKeys]
    
    NSLog(@"%@", array);
    
    // 3) 获取字典中所有的值
    NSArray *array2 = [dic1 allValues]; // dic1.allValues
    
    NSLog(@"%@", array2);
    
    // 4) 获取指定的key所对应的value
    NSString *str = [dic2 objectForKey:@"image"];
    
    NSLog(@"%@",str);
    

    三、可变字典的创建

    1) 初始化方法创建

    NSMutableDictionary *dic1 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"诺维茨基", @"name", @"37", @"age", @"大前锋", @"location", nil];
    

    2)便利构造器创建

    NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"库里", @"name", @"勇士", @"team", @"得分后卫", @"location", nil];
    

    3)字面量创建

    NSMutableDictionary *dic3 = [@{@"姓名" : @"易建联", @"位置" : @"中锋", @"年龄" : @"29"} mutableCopy];
    

    四、可变字典的方法

    // 1) 根据 Key 值修改 value
    [dic3 setObject:@"周鹏" forKey:@"姓名1"]; // 本方法不仅可以修改已经存在的key的value,还可以添加新的 键值对儿.
    
    NSLog(@"%@", [dic3 objectForKey:@"姓名"]);
    
    // 2) 移除指定key的键值对儿
    [dic3 removeObjectForKey:@"姓名1"];
    NSLog(@"%@", dic3);
    
    
    // 3) 移除所有键值对儿
    [dic3 removeAllObjects];
    NSLog(@"%@", dic3);

    相关文章

      网友评论

        本文标题:OC中的字典NSDictionary与NSMutableDict

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