Objective-C语法之词典对象的那些事儿(八)

自动化学报Ctex+texstudio配置方法 自动化学报Latex的模板win10使用方法(CTEX+texstudio) 阅读详情

   做过Java语言 或者 C语言 开发的朋友应该很清楚 关键字map 吧,它可以将数据以键值对儿的形式储存起来,取值的时候通过KEY就可以直接拿到对应的值,非常方便。在Objective-C语言中 词典对象就是做这个事情的,不过在同一个词典对象中可以保存多个不同类型的数据,不像Java与C 只能保存声明的相同类型的数据,它的关键字为NSDictionary与NSMutableDictionary。阅读过我之前文章的朋友应该从关键字的结构就可以看出这两个的区别。很明显前者为不可变词典,或者为可变词典。




1.创建不可变词典



[NSDictionary dictionaryWithObjectsAndKeys:..] : 使用键值对儿直接创建词典对象,结尾必需使用nil标志结束。

[NSDictionary initWithObjectsAndKeys:..] :使用键值对儿初始化词典对象,结尾必需使用nil标志结束。

[dictionary count]: 得到词典的长度单位。

[dictionary keyEnumerator]: 将词典的所有KEY储存在NSEnumerator中,NSEnumerator很像Java语言 中的迭代器,使用快速枚举可以遍历词典中所有储存KEY值。

[dictionary  objectEnumerator]: 将词典的所有value储存在NSEnumerator中,用法和上面差不多可用来遍历KEY对应储存的Value值。

[dictionary objectForKey:key]: 通过传入KEY对象可以拿到当前KEY对应储存的值。




  1. #import <UIKit/UIKit.h>  
  2. #import "MyClass.h"  
  3. int main(int argc, char *argv[])  
  4. {  
  5.     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];  
  6.     
  7.     //添加我们的测试代码  
  8.       
  9.     NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"雨松MOMO",@"name",@"15810463139",@"number", nil];  
  10.       
  11.     //得到词典的数量  
  12.     int count = [dictionary count];  
  13.     NSLog(@"词典的数量为: %d",count);  
  14.       
  15.     //得到词典中所有KEY值  
  16.     NSEnumerator * enumeratorKey = [dictionary keyEnumerator];  
  17.       
  18.     //快速枚举遍历所有KEY的值  
  19.     for (NSObject *object in enumeratorKey) {  
  20.         NSLog(@"遍历KEY的值: %@",object);  
  21.     }  
  22.       
  23.     //得到词典中所有Value值  
  24.      NSEnumerator * enumeratorValue = [dictionary objectEnumerator];  
  25.       
  26.     //快速枚举遍历所有Value的值  
  27.     for (NSObject *object in enumeratorValue) {  
  28.         NSLog(@"遍历Value的值: %@",object);  
  29.     }  
  30.       
  31.     //通过KEY找到value  
  32.     NSObject *object = [dictionary objectForKey:@"name"];  
  33.       
  34.     if (object != nil) {  
  35.         NSLog(@"通过KEY找到的value是: %@",object);  
  36.     }  
  37.       
  38.       
  39.       
  40.     int retVal = UIApplicationMain(argc, argv, nil, nil);  
  41.     [pool release];  
  42.     return retVal;  
  43. }  











2.创建可变词典对象



NSMutableDictionary 是NSDictionary的子类,所以继承了NSDictionary的方法。


[NSMutableDictionary dictionaryWithCapacity:10] : 创建一个可变词典初始指定它的长度为10.,动态的添加数据如果超过10这个词典长度会自动增加,所以不用担心数组越界。

[NSMutableDictionary initWithCapacity:10]  :只是初始化一个词典的长度为10。

[dictionary setObject:@"雨松MOMO" forKey:@"name"] :向可变的词典动态的添加数据 ,这里的key是name 值是雨松MOMO。如果词典中存在这个KEY的数据则直接替换这个KEY的值。

[dictionary removeAllObjects..] : 删除掉词典中的所有数据。

[dictionary removeObjectForKey..] :删除掉词典中指定KEY的数据 。





  1. #import <UIKit/UIKit.h>  
  2. #import "MyClass.h"  
  3. int main(int argc, char *argv[])  
  4. {  
  5.     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];  
  6.     
  7.     //添加我们的测试代码  
  8.       
  9.     //创建词典对象,初始化长度为10  
  10.     NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithCapacity:10];  
  11.      
  12.     //向词典中动态添加数据  
  13.     [dictionary setObject:@"雨松MOMO" forKey:@"name"];  
  14.       
  15.     [dictionary setObject:@"15810463139" forKey:@"number"];  
  16.       
  17.       
  18.     //通过KEY找到value  
  19.     NSObject *object = [dictionary objectForKey:@"name"];  
  20.       
  21.     if (object != nil) {  
  22.         NSLog(@"通过KEY找到的value是: %@",object);  
  23.     }  
  24.       
  25.       
  26.       
  27.     int retVal = UIApplicationMain(argc, argv, nil, nil);  
  28.     [pool release];  
  29.     return retVal;  
  30. }  










词典类的存在就是为了解决在大量数据中查找方便,因为它是通过key直接找到value所以速度很快,避免一个个的遍历寻找造成的效率低下,善用字典类会帮你的程序提速噢。 哇咔咔~ 晚安各位盆友们~

Vue3 - vite 项目报错:Uncaught ReferenceError: require is not defined(解决 vue3 vite 项目无法识别 require 语法导致报错) vue3,vite,报错解决,vue3+vite报错requireisnotdefined,vue3vite引插件不识别require,老插件必须用require怎么办,vite项目插件要求使用require引入但报错,vue3不兼容require导致第三方包插件无法使用,vue3vite中使用require报错怎么办,解决Vite+vue3使用第三方依赖报错“requireisnotdefined”问题,vite项目require语法兼容问题解决requireisnotdefine 阅读详情

相关推荐

如何搭建一个vue项目(完整步骤)

查看版本的两种方式 出现版本号则说明安装成功(最新的以官网为准) 这里注意:安装vue-cli对node.js的版本是有要求的 装的两种方式:输入cmd命令 查看安装的版本(显示版本号说明安装成功) 如果你原来有版本或者版本比较低,可以升级...

m0_67392661的博客 5585

Objective-c基础:数据存储

在开发程序的时候,很多时候需要在本地存储一些程序的配置信息,这时就需要本地的数据读写操作。Objective-C中操作本地存储数据的方法有三种:数据库、NSUserDefaults和文件。

yang1fei2的博客 1341

树莓派与stm32通信超详细解答过程

笔者之前发过关于stm32与openmv通信的教程,在学习了几天opencv后,想实现树莓派4B与stm32进行通信。于是上网查询资料,最后实现了两者之间的通信,相信这对大多数电赛人都很有帮助,opencv的识别效果是远高于openmv以及K210的。在此我参考了以下资料辅助我学习,大家可以参考。基于树莓派4B与STM32的UART串口通信实验(代码开源)_树莓派4b串口波特率-优快云博客。

Halcyon0804的博客 5465

Object-c  数据存储的方法

如果数据存储对象是NSString,NSDictionary,NSArray,NSDate,NSData或者NSNumber,可以使用这些类的 writeToFile:atomically:方法来存储。用这种方法保存dictionary,array的数据是按照XML格式的文件存储的。 实例: // // main.m // Program191 // // Created by Kenn

kennyliang123的专栏 1081

Multisim的探针(Probe)及数字电路的一些调试技巧的应用

Multisim的探针(Probe)及数字电路的一些调试技巧的应用 --EE Bang   By  WRS 上图为555方波发生器,根据R1,R2,C2参数的配置可产生频率为46.3KHZ,占空比50%的方波信号,如果用示波器查看波形参数的话需要用两个坐标轴做差,操作不便,另外如果要修改电路将上述电阻换成滑动变阻器的话,使其产生可变频率

Agent Christmas的博客 3万+

VUE3 实战手记(一)集成 EasyUI for Vue 组件库

本文详细介绍了如何在VUE3项目中集成EasyUI for Vue组件库,包括环境准备、基础安装、配置与集成、TypeScript类型问题解决以及组件实战等内容。EasyUI以其轻量级和开箱即用的特性,特别适合快速开发后台管理系统,提升开发效率。

weixin_30628801的博客 529

【学习ios之路:Objective-C】字典.集合.

1.不可变数据字典(NSDicionary) 字典:用来存储具有一一对应关系的数据. 一个key 对应一个 value ,key起到了唯一标示的作用,key必须是唯一的,但是一个vlaue可以对应多个key. 字典存储的是无序的元素,一对键值对组成了字典中的一个元素. ①.不可变字典初始化赋值 //笑笑语法 NSDictionary *dic = @{@"name":@

Forever_YouSay 2155

[QMT和ptrade量化交易小白入门]-125、菜场大妈加上四大现金行业指数风控,最大回撤从22%减少了一半

群里面有人建议,在菜场大妈策略的基础上,加入申万的行业指数(银行,钢铁,有色,煤炭)测算其宽度,当这四大行业其中有一个高就会清仓(用来控制回撤)。这背后的逻辑是,在存量资金博弈的市场环境中,资金总量相对固定,当银行、钢铁、有色、煤炭等大市值周期行业因基本面改善(如涨价、政策催化)或避险需求而走强时,会吸引大量资金涌入,导致其他板块(尤其是小市值股票)面临流动性虹吸。经过回测,对比上一个版本发现确实是可以降低一半的回撤,最大回撤从22.3%降到了11.4%,而且有很多时间是空仓等待。

木头大左的博客 239

Objective-C中的字典(NSDictionary)及NSNumber、NSValue的介绍

一、Objective-C中的字典(NSDictionary) 1.Objective-C中的字典(NSDictionary) 就是一个简单的key-value对,key相当于索引value相当于索引处的值,就像字典中拼音与文字的关系,字典里面的元素没有先后顺序,可以存放不同类型的数据,但不能是C语言的基本数据类型,这一点与数组相同。 2.Objective-C中字典创建 NSDicti...

xutaoshuaiqi的博客 2807

【Python高阶开发】12. 工业知识图谱实战:从0构建设备故障诊断系统(附Neo4j部署+完整代码)

摘要:传统工业设备故障诊断依赖专家经验,存在知识难沉淀、故障定位慢、根因分析不彻底等痛点。本文基于开源工具栈(Neo4j+Py2neo+Spacy+FastAPI),从0到1构建工业知识图谱故障诊断系统。内容涵盖:知识图谱核心概念解析、Neo4j图数据库部署、工业设备本体设计、多源知识抽取(结构化Excel+非结构化手册)、图谱构建与查询、故障诊断与根因分析功能实现,以及可视化与API服务部署。每个模块附完整可运行代码及执行结果,新手可按步骤复现全流程,进阶读者可直接复用代码到实际项目

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1107

【自适应滤波】自适应UKF,基于新息自适应调节Q和R,场景为雷达跟踪与滤波、MATLAB实现

本文提出了一种基于新息协方差匹配的自适应UKF(CM-AUKF)算法,用于解决噪声统计未知或时变场景下的目标跟踪问题。通过实时调整过程噪声协方差Q和观测噪声协方差R,CM-AUKF显著提升了跟踪精度和稳定性。仿真结果表明,相比传统UKF,CM-AUKF在位置和速度估计误差上分别降低了约50%和30%,且无需人工调参。该算法适用于无人机导航、雷达跟踪等动态环境,MATLAB代码可直接运行复现结果。自适应曲线显示算法能有效收敛到真实噪声参数,验证了其自适应能力。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 329

Objective-C语法的那些事儿(十篇文章,大家一起来学习)

Objective-C 基础语法log打印那些事儿(一) http://www.1000phone.net/thread-7292-1-1.html Objective-C语法之常用数据的那些事儿(二)  http://www.1000phone.net/thread-7293-1-1.html Objective-C语法之NSString字符串的那些事儿(三) http://ww

tj8246965的专栏 215

SAP_ABAP_SD_BAPI清单案例教程——销售订单开票_BAPI_BILLINGDOC_CREATEMULTIPLE_VF01_S4版本

SAP BAPI(Business Application Programming Interface)是SAP系统中的一组规范和标准,用于从SAP系统中获取数据、输入数据和更新数据。这些API允许开发者以编程方式与SAP系统交互,而无需编写大量的自定义代码。2.1 Copy代码 直接可使用。2.2 VF01开票。

java_zhong1990的专栏 2214

oc字典类总结

1.字典是由一对键值对对象所组成的数据的集合,从Objective-C 的字典中可以根据键获得它所对应的值 2.字典中的键必须是唯一的,一般是字符串。与键关联的值,可以是任何对象类型的值,但它不能为nil 3.NSDictionary常用的方法:  //以多个元素进行初始化     NSDictionary *date=[NSDictionary dictionaryWi

qq_23529011的博客 387

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

objective-c dictionary(字典)

from: http://blog.sina.com.cn/s/blog_4cd8dd130100t88x.html dictionary是由键-对象组成的数据集合。正如在词典中查找单词的定义一样,可通过对象的键从objective-c词典中获取所需的值。 词典中的键必须是单值的,尽管它们通常是字符串,但还可以是任何对象类型。和键关联的值可以是任何对象类型,但它们不能为ni

wangyx810328的专栏 714

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Objective-c-字典使用

1.所有的key都是一个字符串,键 值是成对出现的。且都不能为空,非要为空要使用NSnull。字典是通过key来存取值的,key valu必须成对出场    2.字典是有键-值的数据组合,通过key查找对于的value,值可以是其他任意的类型,key必须是唯一的。     3.为什么要使用字典呢?而不使用数组? 答?数组特征:数组是按一定顺序排列的集合,通过下标去取值

ch_blog的博客 577

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Objective-C(十三、字典类)——iOS开发基础

字典类,可变字典NSDictionary和不可变字典NSMutableDictionary的基本知识和常用方法

弄潮者的博客 1712

objective-C基础----字典,集合

对于name:张三  来讲,name就是key。key对应的value就是张三     一个key-value的组合被认为是一个条目,字典是存储key-value对的容器          特点:   1、与数组不同,字典靠key来存储数据,数组是通过下标存储元素   2、key不能重复,value必须是对象,(如果不是对象,有NSNumber、NSValue)   3、键值对

cherry_711的博客 443

Objective-C之字典

介绍 Java有Map,可以把数据以键值对的形式储存起来,取值的时候通过key就可以直接拿到对应的值,方便快捷。在Objective-C语言中,词典就是做这样的事情的,和NSArray一样,一个词典对象也能保存不同类型的值,词典也分别有不可变词典和可变的词典(NSDictionary与NSMutableDictionary),前者是线程安...

weixin_34241036的博客 214

InnoDB 内存结构总览:Change Buffer、AHI 与 Log Buffer

本文系统梳理InnoDB内存结构中的ChangeBuffer、Adaptive Hash Index(AHI)与LogBuffer。ChangeBuffer缓存二级索引页不在内存时的变更,减少随机IO,仅在页加载时合并;聚簇索引修改立即执行,因数据本身不可延后。AHI基于高频等值查询自动构建哈希索引,加速定位,仅支持等值操作。LogBuffer为redo log内存缓冲,配合磁盘日志实现崩溃恢复。三者均服务于性能优化,其中ChangeBuffer与AHI共享BufferPool空间,而LogBuffer独立

bksczm的博客 271
上一篇: Objective-C语法之集合对象的那些事儿(九)
下一篇: Objective-C语法之数组对象的那些事儿(七)
vrix
博客等级 码龄24年 673粉丝 167原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值