iOS-NSDictionary and NSMutableDictionary

1.NSDictionary初始化

1)字典中元素是键值对,所以字典元素都是成对出现的,一个元素就是一对(有key和对应的value)
2)键和值都是对象类型,键和值的类型可以不同
3)在字典中,不能出现相同的key,但可以出现相同的value,key的唯一性,这样就能够通过key唯一确定value

//NSDictionary创建

         //不可变字典:字典对象一旦创建完成后,字典成员不能够被修改,增加和删除
    NSDictionary *dictionary = @{@"key1":@"value1", @"key2":@"value2"};
    //常用//初始化不可变字典//字典中的元素是成对出现的,要有key和value//key:value
    #pragma mark 对象方法创建字典
    NSDictionary *dictionary1 = [[NSDictionary alloc] initWithDictionary:dictionary];
    //用其他字典初始化当前的字典对象
    //字典中的key和value可以是任意的oc类型//nil:字典的结束标志
    NSDictionary *dictionary2 = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1", @"key1",
                            @"value2", @"key2", nil];
    //value在前key在后,成对出现//最常用
    #pragma mark 类方法创建字典
    NSDictionary *dictionary3 = [NSDictionary dictionaryWithDictionary:dictionary];
    NSDictionary *dictionary4 = [NSDictionary dictionaryWithObjectsAndKeys:@"value1", @"key1",
                                 @"value2", @"key2", nil];

2.NSDictionary的操作
//字典中元素个数

    NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"value1", @"key1",
                                  @"value2", @"key2", nil];
    //- (NSUInteger)count;
    //作用:字典中元素个数
    [dictionary count];

//根据key(索引)找value(值)

    //- (id)objectForKey:(id)aKey;
    //作用:根据key找对应value
    [dictionary objectForKey:@"key1"];

//获取字典中的所有的key

    //- (NSArray *)allKeys;
    //作用:获取字典中所有的key
    //返回是一个数组
    [dictionary allKeys];

//获取字典中所有的value

    //第一种写法
    for (NSString *key in [dictionary allKeys]) {
        [dictionary objectForKey:key];
    }
    //第二种写法
    - (NSArray *)allValues;

//获取某个值value对应的所有键key

    - (NSArray *)allKeysForObject:(id)anObject;

3.NSMutableDictionary

//可变字典初始化
    NSMutableDictionary *mutableDictionary = [[NSMutableDictionary alloc] init];//创建一个空
         //对象方法初始化一个空的字典
    NSMutableDictionary *mutableDictionary1 = [[NSMutableDictionary alloc] initWithCapacity:0];
    //类方法初始化一个空的字典
    NSMutableDictionary *mutableDictionary2 = [NSMutableDictionary dictionaryWithCapacity:0];

//向字典中添加元素(增加操作)

    NSDictionary *dic = @{@"height": @"183"};
    
    NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithCapacity:0];//创建一个空字典
    //- (void)setObject:(id)anObject forKey:(id <NSCopying>)aKey;
    //作用:字典的末尾追加元素
    [dictionary setObject:@"chen chao" forKey:@"name"];
    [dictionary setObject:@"good teacher" forKey:@"info"];
    
    //- (void)addEntriesFromDictionary:(NSDictionary *)otherDictionary;
    //作用:字典末尾追加一个字典
    [dictionary addEntriesFromDictionary:dic];

//

//字典中元素的删除(删除操作)

    //创建一个空字典
    NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithCapacity:0];
   
    [dictionary setObject:@"chen chao" forKey:@"name"];
    [dictionary setObject:@"good teacher" forKey:@"info"];
    
    //- (void)removeObjectForKey:(id)aKey;
    //作用:根据key删除对应的元素
    [dictionary removeObjectForKey:@"info"];//常用
    
    //删除所有的元素
    [dictionary removeAllObjects];

//字典中元素的修改

    NSDictionary *dic = @{@"height": @"183"};
    
    NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithCapacity:0];//创建一个空字典
    [dictionary setObject:@"chen chao" forKey:@"name"];
    [dictionary setObject:@"good teacher" forKey:@"info"];
    
    //- (void)setObject:(id)anObject forKey:(id <NSCopying>)aKey;
    //作用:key值字典中已经存在,进行覆盖,如果不存在,追加
    [dictionary setObject:@"hot man" forKey:@"info"];
    
    //- (void)setDictionary:(NSDictionary *)otherDictionary;
    //作用:替换字典
    [dictionary setDictionary:dic];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,916评论 19 139
  • NSRange : 表示范围作用的结构体,3种方式创建 // 方式一 NSRange range; locatio...
    路墨阅读 4,705评论 1 8
  • 5点55分,天色还是暗的,最近在起床前的梦境居然都是早餐内容,然后随着闹铃声眯着眼睛开始我的早餐程序,直到把南送到...
    吉妮阅读 3,973评论 0 0
  • //js部分 var box=div.getElementsByTagName('input'); //全选 fu...
    Lnannan阅读 3,180评论 0 0

友情链接更多精彩内容