【Objective-C】OC中字典基本概念和常用方法(NSDictionary和NSMutableDictionary)

【Objective-C】OC中字典基本概念和常用方法(NSDictionary和NSMutableDictionary)

原创

jiangqq900826 ©著作权

文章标签 IOS 字典 objective-c NSDictionary NSMutableDictionary 文章分类 iOS 移动开发

©著作权归作者所有:来自51CTO博客作者jiangqq900826的原创作品,请联系作者获取转载授权,否则将追究法律责任

一:字典的基本概念

    Foundation中的字典(NSDictionary,NSMutableDictionary)是由键-值对组成的数据集合.正如,我们在字典里查找单词的定义一样.

通过key(键),查找的对应的value(值),key通常是字符串对象,也可以是其他任意类型对象.在一个字典对象中,key的值必须是唯一的.

此外,字典对象的键和值不可以为空(nil),如果需要在字典中加入一个空值,可以加入NSNull对象

二:不可变字典-NSDictionary

   1:初始化(以一个元素和多个元素进行初始化):

     //以一个键值对象 进行初始化

        NSDictionary *dict1=[NSDictionary dictionaryWithObject:numObj1 forKey:@"key1"];         NSLog(@"%@",dict1);         //以多个元素进行初始化         NSDictionary *dict2=[NSDictionary dictionaryWithObjectsAndKeys:numObj1, @"key1",numObj2,@"key2", nil];         NSLog(@"%@",dict2);
 2:获取字典的数量
	

//获取字典的数量

        NSInteger count=[dict2 count];

        NSLog(@"%ld",count);

3:根据key获取相应的value对象

//根据key获取相应的value对象

        NSString *value=[dict2 objectForKey:@"key1"];         NSLog(@"%@",value);
4:把字典的key转换成枚举对象用于遍历

NSEnumerator *enumerator=[dict2 keyEnumerator];
5:获取所有的key集合

//获取所有的key集合

        NSArray *keys= [dict2 allKeys];         NSLog(@"%@",keys);
6:获取所有的value集合

//获取所有的value集合

        NSArray *values=[dict2 allValues];         NSLog(@"%@",values);
三:可变字典NSMutableDictionary继承自NSDictionary

1:初始化字典

  //初始化字典         NSMutableDictionary *mutableDic=[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"v1",@"k1",@"v2",@"k2",@"v3",@"k3",@"v4",@"k4",@"v5",@"k5", nil];
2:向字典中添加指定的字典

//向一个字典中添加一个字典

        NSDictionary *dict4=[NSDictionary dictionaryWithObject:@"v6" forKey:@"k6"];         [mutableDic addEntriesFromDictionary:dict4];         NSLog(@"%@",mutableDic);
3:向字典中添加valuekey


//向字典中添加value和key         [mutableDic setValue:@"object" forKey:@"key"]; 
4创建空的字典,然后设置新的一个字典
 //创建空的字典,然后设置新的一个字典,把会之前的字典全部覆盖掉         NSMutableDictionary *mutableDict2=[NSMutableDictionary dictionary];         [mutableDict2 setDictionary:mutableDic];         NSLog(@"%@",mutableDict2);
5:删除指定keyvalue

 //移除指定key的value值         [mutableDict2 removeObjectForKey:@"k4"];         NSLog(@"%@",mutableDict2);
6:删除移除key集合的value

//删除一组key的value值         NSArray *arrayKeys=[NSArray arrayWithObjects:@"k1",@"k2",@"k3", nil];         [mutableDict2 removeObjectsForKeys:arrayKeys];         NSLog(@"%@",mutableDict2); 
7:删除字典中所有的value

//删除字典中所有的数据

        [mutableDict2 removeAllObjects];         NSLog(@"%@",mutableDict2); 
四:枚举遍历

1:一般遍历

//一般遍历

        NSArray *allKeys=[mutableDic allKeys];         for (NSInteger i=0; i<[allKeys count]; i++) {             NSString *obj=[mutableDic objectForKey:[allKeys objectAtIndex:i]];                          NSLog(@"%@",obj);         } 

2:快速枚举

//快速遍历

     for (id key in mutableDic) {         NSString *object=[mutableDic objectForKey:key];         NSLog(@"%@",object);     }
3:迭代器枚举

  //枚举器       NSEnumerator *enumerator1= [mutableDic keyEnumerator];         id key=[enumerator1 nextObject];         while (key) {             id object=[mutableDic objectForKey:key];             NSLog(@"%@",object);             key=[enumerator1 nextObject];         }
  • 收藏
  • 评论
  • 举报
提问和评论都可以,用心的回复会被更多人看到 评论
发布评论
相关文章

举报文章

请选择举报类型

内容侵权 涉嫌营销 内容抄袭 违法信息 其他

具体原因

包含不真实信息 涉及个人隐私

补充说明

0/200

上传截图

格式支持JPEG/PNG/JPG,图片不超过1.9M

已经收到您得举报信息,我们会尽快审核