博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Objective-C】OC中字典基本概念和常用方法(NSDictionary和NSMutableDictionary)
阅读量:7191 次
发布时间:2019-06-29

本文共 2868 字,大约阅读时间需要 9 分钟。

一:字典的基本概念

    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
:向字典中添加
value
key

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

//移除指定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]; }

转载于:https://blog.51cto.com/2939716/1376381

你可能感兴趣的文章
18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 L
查看>>
Apache安装部署
查看>>
CCNA网络技术实验手册:Cisco IOS备份与升级
查看>>
相关VB.NET文件对象基础知识讲解
查看>>
简单描述Servlet Filter(过滤器) 相关知识
查看>>
生成自增的编号,生成订单号
查看>>
SqlSever2005 一千万条以上记录分页数据库优化经验总结【索引优化 + 代码优化】一周搞定...
查看>>
企业内部IT一体化系列之四:WEB平台 SharePoint服务配置
查看>>
ksh里三个月之外的文件移动脚本
查看>>
MSDN Windows8 中文版 下载地址
查看>>
MYSQL 中实现时间比较的方法
查看>>
支付宝担保交易接口
查看>>
深入浅出三剑客之sed必杀技一例
查看>>
django sitemap设置为https
查看>>
我的友情链接
查看>>
微信内部浏览器打开网页时提示外部浏览器打开遮罩升级版
查看>>
Go语言类型的本质
查看>>
界面主窗体,子窗体的InitializeComponent(构造函数)、Load事件执行顺序
查看>>
java导入导出Excel数据的要点记录
查看>>
汇编2——完整的例子集合
查看>>