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;
}
复制代码

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/7441052.html,如需转载请自行联系原作者

相关文章
|
索引 存储
|
XML 数据格式 iOS开发
|
存储 对象存储 块存储