OC学习----字典

OC学习 第九章 数组字典嵌套 OC学习  第九章                                数组字典嵌套(重在应用) //数组-字典-数组               取值时先从外往里取,要取的值是什么类型就用什么类型去接收; //字典-数组-字典         NSDictionary *dic = @{                               @"1 阅读详情

NSDictionary / NSMutableDictionary

1.概念:字典是关键字 key 及其定义的值 value 所构成的集合.即它是由key-value组成的键值队的集合.通常来讲, key 一般是 NSString 类型, value 是OC中任意的对象.对于字典来讲,我们就是通过 key 来访问 value .

2.为什么在有了数组后,还需要有字典呢?在有大量的数据或频繁的查找信息时,使用字典的话,效率更高.因为字典是采用键查询的优化存储方式.

3.在OC中,我们使用 NSDictionary 和 NSMutableDictionary 来表示字典.其中, NSMutableDictionary 是 NSDictionary 的子类.

4.不可变字典初始化

    NSDictionary *dictionary1 = [NSDictionary dictionary];
    NSDictionary *dictionary2 = [[NSDictionary alloc] init];
    //创建一个健值对的字典
    NSDictionary *dictionary3 = [NSDictionary dictionaryWithObject:@"aaa" forKey:@"name"];
    //创建多个健值对的字典
    NSDictionary *dictionary4 = [NSDictionary dictionaryWithObjectsAndKeys:@"aaa",@"name",@24,@"age",@"111",@"address", nil];
    //value在前,key在后,value和key成双出现
    NSLog(@"%@",dictionary4);
    //根据一个字典创建一个字典
    NSDictionary *dictionary5 = [NSDictionary dictionaryWithDictionary:dictionary4];

    //新语法创建字典
    NSDictionary *dictionary6 = @{};//空字典
    NSDictionary *dictionary7 = @{@"name":@"yanshuxin"};
    NSDictionary *dictionary8 = @{@"name":@"yanshuxin",@"age":@21,@"address":@"广州"};
    NSLog(@"%@",dictionary8);

    NSDictionary *dictionary10 = [NSDictionary dictionaryWithContentsOfFile:@""];
    NSDictionary *dictionary11 = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:@""]];

5.如何访问字典的数量

    //求字典中健值对的数量
    NSInteger count = dictionary4.count;
    NSLog(@"%ld",count);

6.如何访问字典中元素

    //通过key来访问字典中对应的值
    NSString *name = [dictionary4 objectForKey:@"name"];
    NSLog(@"%@",name);
    //新语法
    NSString *newName = dictionary4[@"name"];
    NSLog(@"%@",newName);

    //如何遍历字典中的所有值?
    //表示字典中所有的key
    NSArray *keyArray = dictionary4.allKeys;
    //表示字典中所有的value
    NSArray *valueArray = dictionary4.allValues;
    for (NSString *key in keyArray) {
        NSLog(@"%@ : %@",key,dictionary4[key]);
    }

    enumerator = dictionary4.keyEnumerator;
    NSString *key;
    while (key = [enumerator nextObject]) {
        NSLog(@"%@ : %@",key,dictionary4[key]);
    }

7.在字典中,不能够存在相同的key,能够存在相同的value

8.在字典中,健值对是无序的.

    //如果字典的key重复了,后面的值就会覆盖前面的值
    NSDictionary *dictionary9 = @{@"name":@"yanshuxin",@"name":@"bu"};
    NSLog(@"d9%@",dictionary9);
可变字典

1.1.初始化方法

    NSMutableDictionary *mDictionary1 = [NSMutableDictionary dictionary];
    NSMutableDictionary *mDictionary2 = [NSMutableDictionary dictionaryWithObject:@"name" forKey:@"yanshuxin"];
    NSMutableDictionary *mDictionary3 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"name",@"yanshuxin",@"age",@21, nil];
    //没有新语法
    NSMutableDictionary *mDictionary4 = [NSMutableDictionary dictionaryWithDictionary:dictionary8];

    //自己独有的初始化方法
    NSMutableDictionary *mDictionary5 = [NSMutableDictionary dictionaryWithCapacity:10];

    NSMutableDictionary *mDictionary6 = [NSMutableDictionary dictionaryWithContentsOfFile:@""];
    NSMutableDictionary *mDictionary7 = [NSMutableDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:@""]];

2.操作

    //增
    [mDictionary5 setValue:@"yanshuxin" forKey:@"name"];
    NSLog(@"a%@",mDictionary5);

    //改
    [mDictionary5 setValue:@"YANSHUXIN" forKey:@"name"];
    NSLog(@"b%@",mDictionary5);

    //删
    [mDictionary5 removeObjectForKey:@"name"];
    [mDictionary5 removeObjectsForKeys:@[]];
    [mDictionary5 removeAllObjects];
    NSLog(@"c%@",mDictionary5);

    //新语法
    mDictionary5[@"name"] = @"carmen";
    NSLog(@"c%@",mDictionary5);
从Arduino IDE到Atmel Studio:ATmega328P开发的进阶之路 本文探讨了从Arduino IDE转向Atmel Studio进行ATmega328P开发的进阶路径。通过对比两者差异,详细介绍了Atmel Studio的环境配置、寄存器操作思维、烧录方法及高级调试功能,帮助开发者突破Arduino的封装限制,实现对单片机底层硬件的精细控制与性能优化,提升嵌入式开发的专业能力。 阅读详情

相关推荐

import-im6.q16: attempt to perform an operation not allowed by the security policy `PS‘ @ error/cons

这六个 policy 是使用 XML 格式描述的安全策略。要将其中的限制注释掉,在每个 policy 开始和结束的标记之间添加注释标记“

m0_60657960的博客 1908

OC中的字典

NSDictionary字典就是关键字(键)及其定义所构成的集合。字典在给定的关键字下存储一个数值,这个关键字(键)通常是一个NSString类型的字符串,存储的这个数值可以是Object-C里的任意类型的对象。然后你就可以使用这个关键字来找到其对应的值。 字典和数组一样,也分为不可变字典(NSDictionary)和可变字典(NSMutableDictionary)。 NSDictionar

小白的逆袭~ 1679

squirrel校园二手交易平台

squirrel校园二手交易平台 (适合寻找SSM项目练手的你。) 项目起源:   期末的课程设计,三人一组,我和两个舍友,一时起兴,决定做一个校园二手交易平台,一开始兴致与激情满满,可是后期时间上的冲突,让我们三个人对于这个项目有点累。   这个项目刚定题两天,BezosLee由于通过了360的网上在线笔试,收到了360公司的免费培训邀请,要去北京的360总部进行培训一周,值得庆...

K.SHI的博客 5万+

OC菜鸟成长记-OC中的字典

下面笔者对自己有关OC中的字典的知识进行一下总结。在OC当中,字典的基本元素是由 键 和 值 组成的键值对。字典有不可变字典(NSDictionary)和可变字典(NSMutableDicitonary)两种。 首先是不可变字典(NSDictionary): //初始化 NSDictionary *d1=[NSDictionary new]; N

LiuYongM的博客 641

fastbin attack快速入门

0x01 fastbin简介 Fastbin包含0x20~0x80大小bin的数组指针,用于快速分配小堆块。fastbin按照单链表结构进行组织,相同大小的bin在同一个链表中,fd指向下一个bin,采用LIFO(Last In First Out)机制。在fastbin中,堆块的inuse标志都为1,处于占用状态,防止chunk释放时进行合并,加快小堆块的分配。 正常fastbin的使用 通过这个简单的案例来了解fastbin的单链表结构,malloc和free的过程。 #include<stdio

abelxu 1571

YOLOv8性能提升:基于SPD-Conv的高效空间深度转换卷积技术解析【YOLOv8】

SPD-Conv是一种结合了空间和深度信息的卷积技术。与传统卷积不同,SPD-Conv通过在卷积过程中动态调整空间维度和深度维度之间的关系,使得模型能够在较少的参数下捕捉到更多的空间细节。这种方法尤其适用于检测小目标和复杂场景中的细微特征。SPD-Conv的核心思想是通过引入一个空间深度转换矩阵,将输入特征图的空间信息有效地映射到更高维度的深度信息中。这种转换不仅可以保留输入图像的空间细节,还可以在卷积操作中增强特征的表达能力。空间深度转换:通过一个线性变换矩阵,将输入特征图的空间信息转换为深度信息。

博客 1809

在OC中 NSDictionary(字典)的常用属性和方法

在OC中 NSDictionary(字典)是由键--值对组成的数据容器,通过键(key),对应值(value);字典中的元素是无序的;字典中的key可以是任意类型,一般使用字符串作为一个元素的key。字典分不可变字典不可变字典两种,字典和数组一样,也可以使用简便语法创建,访问字典中的元素。 NSMutableDictionary是可变字典,字典中存储的元素是可以修改的。NSMutableDi

MacYHY的博客 1752

【OpenCV-Python】——图像处理基础&读写及显示图像&读写及播放视频&灰度图/彩色图/图像通道操作、运算

在Python中,OpenCV使用NumPy数组存储图像,Numpy是使用Python进行数组计算的软件包,提供强大的N维数组对象,支持复杂的广播功能(数组运算),集成了C/C++和Fortran代码工具,支持线性代数、傅里叶变换和随机数等特性,还可作为通用数据的高效多维容器,如在OpenCV中显示图像。Numpy的知识点见数据处理专栏,主要包括数据类型、创建数组、数组形状、索引切片和迭代、数组运算等。作为初学者,里面可能有总结不全,后续深入学习后会改善文章!下次学习图形用户界面!

weixin_51658186的博客 2084

OC学习,字典的整理

字典的原理:      与java中的hashmap功能相同            key ---> value            字典中存储的都是键值对 一、dictionary 创建字典方法1:      NSArray *keys = @[@"name", @"address"];      NSArray *objects = @[@"jack", @"tia

u010438187的专栏 484

保研考研机试攻略(满分篇):第二章——满分之路上(1)

保研考研机试攻略(满分篇):第二章——满分之路上(1)2.1计算机和基础+2.2进阶背包问题+2.3毛毛虫算法

qq_63349644的博客 1194

Python爬虫实战:基于最新技术栈的政府招标采购数据抓取与分析

对于企业、研究人员和数据分析师来说,能够高效地获取这些数据意味着可以获得宝贵的商业洞察和市场先机。随着反爬技术的不断升级和网站结构的日益复杂,传统的爬虫方法已经难以满足需求。我们将采用Selenium、Playwright等现代浏览器自动化工具,结合Scrapy框架和异步请求库,构建一个能够应对各种反爬措施的强大爬虫系统。Playwright是微软开发的浏览器自动化工具,支持Chromium、WebKit和Firefox,比Selenium更快速、更稳定。

2201_76125261的博客 1311

OC学习--字典的使用

字典(Dictionary) 1、字典是OC中特有的类型,用于存放OC的对象 2、字典中的对象是没有顺序的 3、字典中的对象是以【键值对】的形式出现的 4、键是为了查找值而存在的,是为了快速的查找到值 5、任何对象都可以作为键,但是常用字符串作为键 6、key是唯一的不可能出现多个相同的key OC中字典分为不可变字典(NSDictionary)和可变字典

thatday_csdn 703

矿石生成(1)

这个提供了标准化的矿石放置配置模板简化了常见和稀有矿石的配置过程遵循了Minecraft原版的世界生成模式提高了代码的可读性和可维护性通过使用这个类,模组开发者可以更轻松地配置矿石的生成规则,而不需要每次都手动编写完整的放置修饰符列表。这种设计模式在原版Minecraft和其他大型模组中也很常见,是一种良好的编程实践。// 导入语句...// 字段和方法...包声明表明这个类位于luckymod模组的WorldGen包中,专门处理世界生成相关配置。导入语句。

qq_24992377的博客 136

OC篇学习-字典

//   字典是无序存在的  字典中得key值和value值是成对出现的(键值对) //    字典中得Key值必须是唯一的(不能够重复) //    不可变的字典 //    在初始化字典的时候key值在后 value在前   在控制台输出的时候 key值在后 value在前; //    如果key值重复的出现 程序在编译的时候 认为这个key值已经存在 不会再去理会后边重复的key和

鹰击长空KO的博客 409

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

OC学习:OC字典NSDictionary

/*          字典的有关键字key和关键字所对应value构成的集合,key和value都是存放对象,在大量的数据或频繁的信息查找时,字典的效率比数组要高。字典采用键查询的优化存储方式,用匹配的key来找到对应的value值,因此在字典中不能出现相同的key。          不可变字典NSDictionary是可变字典NSMutableDictionary的父类。       

TaLinBoy的博客 573

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

OC学习:OC中的可变字典NSMutableDictionary和字典的遍历

/*           不可变字典,在不可变字典中没有          */         //可变字典继承了不可变字典的方法         NSMutableDictionary *mDictionary0 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2"

TaLinBoy的博客 863

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

[oc学习日记]字典

字典就是关键字及其定义(描述)的集合。Cocoa中的实现字典的集合NSDictionary在给定的关键字(通常是一个NSString)下存储一个数值(可以是任何类型的对象)。然后你就可以用这个关键字来查找相应的数值。 不同于数组,字典(也被称为散列表或关联数组)使用的是键查询的优化存储方式。它可以立即找出要查询的数据,而不需要遍历整个数组进行查找。

sinat_织梦者的博客 429

OC基础学习——字典和可变字典

/*          字典的定义:字典的元素是键值对, 特点: 1.同一个value可以变多个key          2.一个key只能对应一个value。结构是无序的。          3.理论上key和value是可以是任意对象,实际上key一般用NSString          */                        

qq_28591685的博客 402

OC学习记录,字典

从图7.7可以看出,如果把NSDictionary里的所有key放在一起,它们就组成一个NSSet集合(所有的key没有顺序,key和key之间不能重复),实际上,NSDictionary确实包含了一个allKeys方法,用于返回NSDictionary所有key组成的集合。遗憾的是,NSDictionary把allKeys方法的返回值身为NSArray——这说明该方法经过了进一步转换,它已经把NSSet集合转换成了NSArray集合。NSDictionary集合由多个key-value对组成,因此创建NS

zdsey的博客 437

OC学习日记09-字典

字典前言字典其实在理解了数组之上去看的话,是非常容易的。数组是一个一个数出现的,而字典是一对一对“数”出现的,这个“一对数”就是键值对。但是我们要注意,字典是集合,集合是无序的。而其实还有一个类型叫set集合,它也是无序的,因为它是单值无重复的集合。而且他们都有可变和不可变之分,我们把字符串、数组、字典还有set集合一起对比着学,就会容易记住了。不可变字典 NSDictionary1.概念:字典是关

wjojo238的博客 295

oc学习之Foundation框架--字典类

接下来要总结的是oc中的集合类(NSArray,NSDictionary以及NSSet)中的NSDictionary: oc字典有两种:NSDictionary(不可变的字典类)和NSMutableDictionary(可变的字典类),其中NSMutableDictionary 是 NSDictionary 的子类。 字典是由键值对(key-value)的形式存储的。

Little_clumsy_bird的博客 394

Snail—OC学习之字典NSDictionary

NSDictionary 是根据键值对来存储数据的 是无序、不可重复的 #import int main(int argc, const char * argv[]) { @autoreleasepool { //--------------------对象的方法-----------------------// //初始化一个字典

树上的大腰子 754

Snail—OC学习之可变字典NSMutableDictionary

NSMutableDictionary可变字典 继承与 NSDictionary 所以,NSDictionary的方法 可变字典都适用 对象方法创建 [NSMutableDictionary alloc] init]; [NSMutableDictionary alloc] initWithDictionary:dict]; [NSMutableDictionary alloc] initWi

树上的大腰子 829

OC_学习_数组,字典,集合

#import int main(int argc, const char * argv[]) { /*========1、初始化一个NSArray===========*/ NSArray *array1=[NSArray arrayWithObject:@"iphone"];//这种方法只能添加一个元素 NSLog(@"array1=%@",array1);//数组的打印

bin神话 945

OC语言学习06-字典对象

// NSDictionary //创建不可变字典对象 //字典对象中的元素都是键值对 //key:value //字典中的元素没有顺序 //NSMutableDictionary //创建可变字典对象,继承于NSDictionary; //可以使用所有的不可变字典类中的方法 //对于可变字典对象,可以进行添加修改删除操作 #imp

千古独步的博客 292

OC学习之道:OC对象,字典,集合的使用方法NSDictionary,NSMutableDictionary, NSSet,NSMutableSet,NSCountedSet

OC学习之道:OC对象,字典,集合的使用方法NSDictionary,NSMutableDictionary, NSSet,NSMutableSet,NSCountedSetint main(int argc, const char * argv[]) { #pragma mark---NSDictionary不可变字典 //1,初始化,一对 NSDictionary *di

朝夕 849
上一篇: OC学习----可变数组与不可变数组
下一篇: OC学习----NSDate&NSData
25岁的大叔
博客等级 码龄13年 14粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值