【KVC补充 Objective-C语言】

一、KVC补充

通知
通知

好,那么接下来,再给大家说一下这个KVC

1.首先我们说,这个KVC,就是指的什么

key value coding

全称就是叫做(Key Value Coding),这是它的全称

通知

那么,你在帮助文档里面搜的时候,你就搜key-value coding

通知

是不是这个啊,key-value coding

然后点击,进来

通知

这些都是关于KVC的一些基本介绍

通知

2.然后我们介绍一下这个KVC里面常用的一些方法

首先,新建一个项目

通知

name:演示KVC常用方法

通知

哦,我们这是个iOS程序吧,没有必要用iOS程序

通知

我们用一个Mac程序,就OK了

通知

好,我们首先给大家新建一个类

通知

新建一个Dog类

通知

这是不是一条,狗吧

通知

等会儿再Person,马上就Person了

狗是不是有个name,有个名称吧,额,品种

通知

好,再建一个人,Person类

通知
通知

人是不是养了一条狗

好,人是不是有名称、有姓名吧

通知

这是人的姓名,

人是不是养了一条狗

通知

导入“Dog”类的头文件

好,人里面养了一条狗

那么,接下来,注意看,

main.m文件里面

通知

这里面

通知

创建一个人对象

创建一条狗对象

通知

这个人的姓名呢,叫“张三”

通知

然后呢,再来一条狗

叫什么,chihuahua

通知

然后呢,让我们的这个p1.dog,是不是等于这个chihuahua

p1.dog = chihuahua;

通知

当然,我得先让这个狗,有个名字

通知

chihuahua.name = @“吉娃娃”;

好,然后,接下来,我们这里赋完值以后,当然,下面问都不需要问,

我下面直接这么打印

NSLog(@“%@—%@“,p1.name,p1.dog.name);

肯定是一个是张三,一个是吉娃娃

通知

是不是

通知

是不是,这个人叫张三,它有一条狗,叫吉娃娃

好,这是我们正常的一种用法

好,然后,接下来,就给大家演示一下,这儿的这几个常见用法

通知

我们首先给大家演示的是,创建一个类,通过我们普通写代码的方式,为这些对象赋值

通知

接下来,演示一种,通过KVC的方式,

为对象的属性赋值

setValuesForKeys

这个方法

比如说,我们给大家,回来,

1)先新建一个这么一个字典

通知

上面是

//直接为对象的属性赋值

下面是

//通过kvc的方式为对象赋值

通知

比如说,我希望为这个p1 setValuesForKeys

通知

我们可以用这个setValue forKeyPath

通知

第一个和第二个

1)forKey:

通知

2)forKeyPath

基本上是一样的

但是forKeyPath

功能要比第一个强大

怎么强大呢

等会儿再说

我们现在是不是要,我们现在先一个一个调这个方法,给它赋值,forKeyPath

通知

调这个方法,为它属性赋值,keyPath

p1 setValue:(id) forKeyPath:(NSString *)

通知

1)那么,第一个参数,(id),是一个什么值呢,叫做@“李四”

通知

是不是要给它赋值一个@”李四“啊

然后,给哪个属性赋值呢

2)第二个参数,forKeyPath:(NSString *)

p1的哪个属性,赋值@“李四”呢

@“name”

通知

给p1的name属性,赋值一个@“李四”

通知

额,再来一个age吧

通知

叫什么,assign

@property(nonatomic,assign)int age;

通知

好,再给它来一个,赋个年龄

通知

p1 setValue:(id) forKeyPath:(NSString *)

年龄,注意

通知

我们这个对象里面,不能直接保存我们的普通的数据吧

给它来个什么

通知

来个@10,这样的话,是不是转成对象类型了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/11023.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity XML3——XML序列化

一、XML 序列化 ​ 序列化:把对象转化为可传输的字节序列过程称为序列化,就是把想要存储的内容转换为字节序列用于存储或传递 ​ 反序列化:把字节序列还原为对象的过程称为反序列化,就是把存储或收到的字节序列信息解析读取出来…

尚医通06:数据字典+EasyExcel+mongodb

内容介绍 1、数据字典列表前端 2、EasyExcel介绍、实例 3、数据字典导出接口、前端 4、数据字典导入接口、前端 5、数据字典添加redis缓存 6、MongoDB简介 7、MongoDB安装 8、MongoDB基本概念 数据字典列表前端 1、测试问题 (1)报错日志 &am…

SpringBoot复习:(4)打成的jar包是如何启动的?

jar包通过MANIFEST的Main-Class指定了主类JarLauncher, JarLauncher的main方法代码如下: 其中调用的launch的代码如下: 首先,创建了一个自定义的ClassLoader,代码如下: 其中调用的重载的createClassLoader代码如下&#xff1…

STM32MP157驱动开发——按键驱动(中断)

文章目录 编写使用中断的按键驱动程序编程思路设备树相关驱动代码相关 代码修改设备树文件gpio_key_drv.cMakefile编译测试 编写使用中断的按键驱动程序 对于使用中断的按键驱动,内核自带的驱动程序 drivers/input/keyboard/gpio_keys.c 就可以,需要做的…

cpolar内网穿透工具

文章目录 cpolar内网穿透工具 cpolar内网穿透工具 科学技术的发展日新月异,电子设备在人们的生活中已成为不可或缺的工具,甚至在很多情况下,各类型的电子设备已经成为工作的核心,虽然移动设备越来越小巧,功能也越来越…

基于netlify生成custom SSL certificate

(1)腾讯云申请 (2)域名控制台解析 (3)Nginx下载(crt: CA certificate Chain)

SpringBoot 8种异步实现方式

前言:异步执行对于开发者来说并不陌生,在实际的开发过程中,很多场景多会使用到异步,相比同步执行,异步可以大大缩短请求链路耗时时间,比如:「发送短信、邮件、异步更新等」,这些都是…

如何解决大数据下滚动页面卡顿问题

原文合集地址如下,有需要的朋友可以关注 本文地址 合集地址 前言 之前遇到不分页直接获取到全部数据,前端滚动查看数据,页面就听卡顿的,当然这和电脑浏览器性能啥的还是有点关系。但根源还是一次性渲染数据过多导致的&#xf…

【C++从0到王者】第十三站:vector源码分析及手把手教你如何写一个简单的vector

文章目录 一、vector的源码分析1.分析思路2.构造函数和插入接口 二、手把手教你写一个简单的vector1.基本结构2.迭代器与私有成员变量的定义3.构造函数4.size和capacity5.迭代器函数接口6.析构函数7.reserve接口8.尾插9.operator[]运算符重载10.简单的测试前面的接口11.insert以…

【043】解密C++ STL:深入理解并使用 list 容器

解密C STL:深入理解并使用list容器 引言一、list 容器概述二、list容器常用的API2.1、构造函数2.2、数据元素插入和删除操作2.3、大小操作2.4、赋值操作2.5、数据的存取2.6、list容器的反转和排序 三、使用示例总结 引言 💡 作者简介:一个热爱…

2023年深圳杯数学建模D题基于机理的致伤工具推断

2023年深圳杯数学建模 D题 基于机理的致伤工具推断 原题再现: 致伤工具的推断一直是法医工作中的热点和难点。由于作用位置、作用方式的不同,相同的致伤工具在人体组织上会形成不同的损伤形态,不同的致伤工具也可能形成相同的损伤形态。致伤…

7D透明屏的市场应用广泛,在智能家居中有哪些应用表现?

7D透明屏是一种新型的显示技术,它能够实现透明度高达70%以上的显示效果。这种屏幕可以应用于各种领域,如商业广告、展览展示、智能家居等,具有广阔的市场前景。 7D透明屏的工作原理是利用光学投影技术,将图像通过透明屏幕投射出来…

Talk | 南洋理工大学博士后研究员李祥泰:基于Transformer的视觉分割模型总结、回顾与展望

​ 本期为TechBeat人工智能社区第517期线上Talk! 北京时间7月27日(周四)20:00,南洋理工大学博士后研究员—李祥泰的Talk已经准时在TechBeat人工智能社区开播了! 他与大家分享的主题是: “基于Transformer的视觉分割模型总结、回顾与展望”&am…

C#多线程

C#多线程 C#多线程是C#学习中必不可少的知识,在实际开发中也能有效的提升用户体验,和程序性能。 文章目录 C#多线程前言一、什么是线程、什么是进程、什么是协程?协程优点缺点 线程优点缺点: 进程优点缺点: 二、C# 中…

使用Spring Boot实现Redis键过期回调功能

使用Spring Boot实现Redis键过期回调功能 当使用Redis作为缓存或数据存储的时候,有时候需要在键过期时执行一些特定的操作,比如清除相关数据或发送通知。在Spring Boot中,可以通过实现RedisMessageListener接口来实现Redis键过期回调功能。下…

基于“RWEQ+”集成技术在土壤风蚀模拟与风蚀模数估算、变化归因分析中的实践应用及SCI论文撰写

查看原文>>>基于“RWEQ”集成技术在土壤风蚀模拟与风蚀模数估算、变化归因分析中的实践应用及SCI论文撰写 土壤风蚀是一个全球性的环境问题。中国是世界上受土壤风蚀危害最严重的国家之一,土壤风蚀是中国干旱、半干旱及部分湿润地区土地荒漠化的首要过程。…

B2B企业如何选择CRM系统?

CRM软件的优势在于简化业务流程,实现企业的降本增效。越来越多的B2B企业通过CRM为业务赋能,B2B企业如何快速找到适合公司业务的CRM系统?总的来说就是根据企业自身业务而量身打造的一套系统。 1.整理业务需求 B2B企业首先要考虑是业务痛点&a…

MySQL绿色安装和配置

1、 从地址http://dev.mysql.com/downloads/mysql/中选择windows的版本下载。 2、 mysql各个版本的简介 (1) MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。 (2) MySQL Enterprise Ed…

Spring MVC

一、什么是MVC MVC就是一种思想,而Spring MVC是对MVC思想的具体实现 MVC是Model View Controller的所缩写,是一种软件架构模式,它将软件系统Fenwick墨香,视图和控制器三个基本部分。 Model:是应用程序中用于处理应用…

7.27 Qt

制作简易小闹钟 Timer.pro QT core gui texttospeechgreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11# The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # dep…