NSDictionary(字典)类使用

AI视频生成模型训练:从数据准备到部署全流程 咱们这次的目的就像是要建造一座超级厉害的AI视频生成魔法城堡。范围呢,就是从收集建造城堡的材料(数据准备)开始,到把城堡搭建起来(模型训练),再到让城堡能供大家使用(模型部署),涵盖了整个过程的方方面面。接下来我们会先给大家介绍一些重要的术语,就像认识冒险途中的关键道具一样。然后引入一个有趣的故事,带大家进入AI视频生成的奇妙世界,解释核心概念以及它们之间的关系。接着会详细讲解核心算法原理、数学模型和公式,还会有项目实战,带大家亲自体验代码的魅力。 阅读详情
NSDictionary:字典就是关键字及其定义(描述)的集合。Cocoa中的实现字典的集合NSDictionary在给定的关键字(通常是一个NSString)下存储一个数值(可以是任何类型的对象)。然后你就可以用这个关键字来查找相应的数值。
不同于数组,字典(也被称为散列表或关联数组)使用的是键查询的优化存储方式。它可以立即找出要查询的数据,而不需要遍历整个数组进行查找。
可使用dictionaryWithObjectsAndKeys来创建字典
查询字典的值:objectForKey
NSMutableDictionary的dictionary方法可以创建一个可变字典,也可以使用dictionaryWithCapaticy:。
使用 setObject:forkey: 方法添加字典元素,如果关键字已存在,则用新植替换旧值。
类似的,NSMutableDictionary类允许随意添加或删除字典元素。

添加元素:setObject:forkey:

删除元素:removeObjectForKey:


 1 //
 2  // 
 3  // 
 4  //
 5  // 
 6 //  
 7 //
 8 
 9 #import <Cocoa/Cocoa.h>
10 
11 
12 @interface MyClass : NSObject
13 {
14     NSString *firstName;
15     NSString *lastName;
16 }
17 
18 
19 - (void) setFirstName:(NSString *)m_firstName;
20 - (NSString *) firstName;
21 
22 - (void) setLastName: (NSString *) m_lastName;
23 - (NSString *) lastName;
24 
25 
26 @end



 9 #import "MyClass.h"
10 
11 
12 @implementation MyClass
13 
14 - (void) setFirstName:(NSString *)m_firstName{
15    
16     firstName = m_firstName;
17 }
18 - (NSString *) firstName{
19  return firstName;
20 }
21 
22 - (void) setLastName: (NSString *) m_lastName{
23     lastName = m_lastName;
24 }
25 - (NSString *) lastName{
26  return lastName;
27 }
28 
29 
30 - (NSString *) description
31 {   
32  if (firstName == nil || lastName == nil) {
33  return @"No Name found.";
34     } else {
35  return [NSString stringWithFormat:@"%@ %@",
36             firstName,lastName];
37     }
38    
39 }
40 
41 @end



 7 #import <Foundation/Foundation.h>
 8 #import "MyClass.h"
 9 
10 int main (int argc, const char * argv[]) {
11     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
12    
13  // 创建字典:dictionaryWithObjectsAndKeys:
14     MyClass *my1 = [MyClass new];
15     MyClass *my2 = [MyClass new];
16     MyClass *my3 = [MyClass new];
17     MyClass *my4 = [MyClass new];
18    
19     NSDictionary *myClassDict;
20     myClassDict = [NSDictionary dictionaryWithObjectsAndKeys:
21               my1, @"my1",
22               my2, @"my2",
23               my3, @"my3",
24               my4, @"my4", nil];
25  // 获取值 objectForKey
26     MyClass *sub = [myClassDict objectForKey: @"my3"];
27  if (sub == nil) {
28         exit(1);
29     }
30     [sub setFirstName:@"Elf"];
31     [sub setLastName:@"Sundae"];
32    
33     NSLog(@"修改数据: %@",sub);
34    
35  // 遍历字典
36     NSLog(@"***遍历字典myClassDict如下:");
37  for (id key in myClassDict)
38     {
39         NSLog(@"key: %@ ,value: %@",key,[myClassDict objectForKey:key]);
40     }
41     NSLog(@"***遍历字典myClassDict结束。");
42    
43  // MARK: ***  添加新元素  ***   
44  // NSDictionary无法添加或删除元素,可以使用NSMutableDictionary.
45     NSMutableDictionary *myNewDict = [NSMutableDictionary dictionary];
46  // 将原有字典添加到新字典的一对元素
47  //[myNewDict setObject:myClassDic forKey:@"旧的不可变字典myClassDic"];
48    
49  // 遍历添加已有数据(原字典)
50  for (id key in myClassDict)
51     {
52         [myNewDict setObject: [myClassDict objectForKey:key]
53                   forKey:key];
54     }
55    
56     NSString *newkey = @"newKey";
57     NSString *newValue = @"This is a new Value.";
58     [myNewDict setObject:newValue forKey:newkey];
59    
60  // 遍历myNewDict
61     NSLog(@"***遍历字典myNewDict如下:");
62  for (id key in myNewDict)
63     {
64         NSLog(@"key: %@ ,value: %@",key,[myNewDict objectForKey:key]);
65     }
66     NSLog(@"***遍历字典myNewDict结束。");
67    
68  // 删除元素
69     [myNewDict removeObjectForKey: @"newKey"];
70    
71  // 遍历myNewDict
72     NSLog(@"***遍历字典myNewDict如下:");
73  for (id key in myNewDict)
74     {
75         NSLog(@"key: %@ ,value: %@",key,[myNewDict objectForKey:key]);
76     }
77     NSLog(@"***遍历字典myNewDict结束。");
78    
79     [pool drain];
80  return 0;
81 }



DEMO下载


// 输出结果(省略日期 时间等信息)
修改数据: Elf Sundae
***遍历字典myClassDict如下:
key: my3 ,value: Elf Sundae
key: my4 ,value: No Name found.
key: my1 ,value: No Name found.
key: my2 ,value: No Name found.
***遍历字典myClassDict结束。
***遍历字典myNewDict如下:
key: newKey ,value: This is a new Value.
key: my3 ,value: Elf Sundae
key: my4 ,value: No Name found.
key: my1 ,value: No Name found.
key: my2 ,value: No Name found.
***遍历字典myNewDict结束。
***遍历字典myNewDict如下:
key: my3 ,value: Elf Sundae
key: my4 ,value: No Name found.
key: my1 ,value: No Name found.
key: my2 ,value: No Name found.
***遍历字典myNewDict结束。


将一个BOOL值插入到NSMutableDictionary中

  1. 项目要讲BOOL类型的值插入到一个NSMutableDictionary。

  2. 首先将 BOOL 包装到 NSNumber中:
  3. NSNumber *boolNumber = [NSNumber numberWithBool:YES]
  4. 取得BOOL值:
  5. BOOL b = [boolNumber boolValue];

  6. 或者通过这种方式:
  7. NSValue *boolValue = [NSValue value:pointerToBool withObjCType:@encode(BOOL*)];
  8. BOOL *b = [boolValue pointerValue];

2025年GESP3月认证C++五级真题解析 小 A 有 2n 件物品,小 B 和小 C 想从小 A 手上买走这些物品。对于第 i 件物品,小 B 会以 bi 的价格购买,而小 C 会以 ci 的价格购买。对于所有测试点,保证 1 <= T <= 100, 2 <= g < p <= 10^9, g, p 为整数, p 为质数。对于所有测试点,保证 1 <= n <= 10^5, 0 <= bi, ci <= 10^9, bi, ci 为整数。对于另外 50 % 的测试点,保证 n <= 100000, 0 <= bi, ci <= 10^9。 阅读详情

相关推荐

瑞芯微RK3506开发板DSM音频开发避坑指南:从硬件改接到内核配置全流程

本文详细解析了在瑞芯微RK3506开发板上进行DSM音频开发的完整流程与关键避坑点。内容涵盖从硬件改造(如电阻焊接)、内核驱动配置(DTS参数、补丁应用)到系统调试与波形分析的全过程,旨在帮助嵌入式开发者高效实现高信噪比、低成本的音频方案,避免常见错误。

weixin_29164091的博客 408

[IOS] NSDictionary读取boolean值数据

[code="object-c"] NSDictionary* json = [html JSONValue]; bool bol = [[json objectForKey:@"state"] boolValue]; switch (bol) { case 0: //false break; case 1: //true break; } [/code]

{丸の子} 667

win10删除vmware12后,重新安装失败(遗留注册表问题)解决总结

之前安装过一次VMware虚拟机,后来由于某些已遗忘原因把它卸载了,但是没有卸载完全,为以后安装留下了一些麻烦,现在根据我google很多内容总结后写下了自己的解决办法。 一些我搜的的可以用的VM12的注册码 5A02H-AU243-TZJ49-GTC7K-3C61N ZZ510-DYX47-48ERP-D6XZG-YCKU2 YV5MU-2FX5H-M841P-LZX5X-PYHX8

Jeason的博客 2万+

NSDictionary、NSMutableDictionary的基本用法

1.创建词典1.1不可变词典NSDictionary//字典初始化 NSDictionary *dict2 = [[NSDictionary alloc]initWithObjectsAndKeys:@"frankfan",@"name",@25,@"age", nil];//创建2,实例方法开辟空间并赋值 NSDictionary *dict3 = [NSDictionary di

shenhaifeiniao的博客 1万+

从FPGA工程师视角看CXP-12:如何用Xilinx GTX/GTH收发器搞定一条50Gbps的工业相机数据流?

本文从FPGA工程师视角详细解析了如何利用Xilinx GTX/GTH收发器实现50Gbps的CXP-12工业相机数据流传输。通过协议分析、硬件设计要点和FPGA逻辑实现,帮助开发者高效构建高带宽工业视觉系统,特别适合4K/8K高分辨率图像处理需求。

weixin_42533622的博客 282

告别Vivado自带编辑器!手把手教你用Sublime Text 4 + Icarus Verilog搭建FPGA开发环境(Windows 10/11)

本文详细介绍如何在Windows 10/11系统下,使用Sublime Text 4和Icarus Verilog搭建高效的FPGA开发环境,替代Vivado自带编辑器。通过配置语法检查、代码高亮和智能补全等功能,提升Verilog开发效率,实现专业级工作流。

weixin_30684743的博客 427

NSString字符串相加 相连接

NSString字符串相加 相连接 2010-08-08 13:57 NSString* string; // 结果字符串 NSString* string1, string2; //已存在的字符串   1. string = [NSString initWithFormat:@"%@,%@", string1, string2 ]; 2. string = [

浓浓的巧克力 9100

高效批量转换Java接口为MCP服务:降低重复劳动的实战指南

高效批量转换Java接口为MCP服务:降低重复劳动的实战指南

专注于编程、AI、人工智能等多个领域内容研究和分析 723

NSDictionary读取boolean值数据

Object-c代码 NSDictionary* json = [html JSONValue];  bool bol = [[json objectForKey:@"state"] boolValue];  switch (bol) {    case 0: //false      break;    case 1: //true      break;  } ...

weixin_33923148的博客 292

OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南

OpenClaw已经开源3个月有余,作为深耕AI Agent领域的博主,我亲身探索了各种基于OpenClaw的赚钱方法,也踩过坑、付出了时间与精力。现在,我将这些真金白银砸出来的实战经验,毫无保留地总结成这个专栏,分享给不想从零开始摸索的你。博主在优快云已有7万+粉丝和1100万+阅读量,但这却是我的第一个付费专栏。正因如此,我比任何人都更珍惜这个“第一次”。我会像一个手艺人打磨作品一样,死磕每一篇文章的质量,并持续根据订阅者的反馈优化内容。也许你的疑问就是当篇文章的优化点。

冯·诺依曼 2441

LLCC68芯片系统架构与LoRa驱动开发核心解析

LoRa射频收发器是低功耗广域物联网(LPWAN)的关键组件,其本质是集成了调制解调器、协议引擎、数据缓冲区与电源管理的专用SoC。理解其工作模式状态机(Sleep/Standby/TX/RX)与SPI主机接口时序规范,是实现稳定通信的基础。LLCC68通过寄存器映射与命令集双接口抽象硬件控制,支持LoRa扩频调制与FSK兼容模式,具备高链路预算(157 dB)和DC-DC/LDO动态电源切换能力。典型应用场景包括远距离传感器节点、智能表计与工业无线监测系统。本文深入剖析LLCC68的信号链路径、中断机制与

weixin_29859471的博客 283

OC中字典:NSDictionary类是如何使用的

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

weixin_30443895的博客 118

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

NSDictionary 内存布局

是iOS开发中经常用到的数据结构。熟悉的内部实现,有助于我们更好的使用它们。同时,在遇到相关崩溃,也能帮助我们更好的分析问题。

weixin_41470330的博客 59

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

iOS使用分类(category)实现有序字典

iOS使用分类(category)实现有序字典什么是分类OC中为了对类的方法进行扩展,添加了分类的概念。分类能够做到的事情主要是:即使在你不知道一个类的源码情况下,向这个类添加扩展的方法。关于字典OC中字典是无序的,如果想创建有序字典,可以在字典中添加一个有序数组,数组中保存有顺序的key值,按照数组key值的顺序去访问字典就可以得到有序的字典。实现代码1.怎么创建分类在Xcode8中创建分类 C

Nick_since2016的博客 4903

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Objective-C边学边记-9:Foundation Kit快速教程之 字典、类簇

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

weixin_30593261的博客 101

NSDictionary等基本类型的使用方法

2)NSNullNSNull大概是Cocoa里最简单的类了,只有一个方法+ (NSNull *) null;可以这样添加到集合中[contact setObject: [NSNull null]forKey: @"home fax machine"];访问时:id homefax;homefax = [contact objectForKey: @"home fax machine"];if (h...

weixin_30500473的博客 139
上一篇: Objective-c 读写文本文件
下一篇: plist写入(真机和模拟器是不一样的)
TT5267621
博客等级 码龄15年 154粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值