【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 就可以,需要做的…

对gpt的简单认识

1.gpt是什么? GPT(Generative Pre-trained Transformer 生成式预训练Transformer模型)是一种基于Transformer架构的预训练语言模型,由OpenAI开发。GPT模型以无监督学习的方式使用大规模语料库进行预训练,并具有生成文…

cpolar内网穿透工具

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

基于netlify生成custom SSL certificate

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

课程27:API接口请求日志【后端】

🚀前言 本文是《.Net Core从零学习搭建权限管理系统》教程专栏的课程(点击链接,跳转到专栏主页,欢迎订阅,持续更新…) 专栏介绍:以实战为线索,基于.Net 7 + REST + Vue、前后端分离,不依赖任何第三方框架,从零一步一步讲解权限管理系统搭建。 专栏适用于人群:We…

图片URL通过js自动上传

场景 已经获取了图片的地址,想直接通过这个链接上传到网站指定位置 操作步骤 找到上传图片对应的控件,一般都是input, 在谷歌浏览器的Elements中 搜索 input[typefile],一般就是需要的对象了找到对应的对象,执行以下代码即可上…

SpringBoot 8种异步实现方式

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

【Maven】Maven 中 pom.xml 文件

文章目录 前言什么是 pom?pom配置一览 1. dependencies2.scope3.properties4.plugin参考 前言 Maven 是一个项目管理工具,可以对 Java 项目进行构建和管理依赖。 本文,我们认识下 pom.xml 文件。POM(Project Object Model, 项目…

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

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

网络安全高级课笔记2

一、实例对象 1.对象是单个实物的抽象,是一个容器,封装了属性和方法 2.构造函数,构造函数就是一个普通的函数,但具有自己的特征和用法 var Vehicle function () {this.price 1000; }; 构造函数的特点有两个: 1.…

【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容器的反转和排序 三、使用示例总结 引言 💡 作者简介:一个热爱…

154. 寻找旋转排序数组中的最小值 II

已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums [0,1,4,4,5,6,7] 在变化后可能得到: 若旋转 4 次,则可以得到 [4,5,6,7,0,1,4]若旋转 7 次&#xff0…

队列数据分析积累-1

https://mp.weixin.qq.com/s/XZV_5iioPDHnMQfEPCIlMg BKMR #首先清理缓存。 rm(list ls()) #运行R包,如果没有下载要先下载。 library(bkmr) library(ggplot2) #给数据赋值,如果要自己进行研究,数据的地址以及数据的变量需要对应的自行…

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

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

【C++】总结4-this指针

文章目录 什么是this指针this指针存在的意义this指针的特性this指针存在哪里this指针可以为空吗 什么是this指针 C编译器给每个非静态成员函数增加了一个隐藏的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数…

Java NIO Files类读取文件流方式详解

Java NIO Files类读取文件流方式详解 Files类原理概述 java.nio.file.Files是Java标准库提供的一个工具类,用于操作文件和目录。它提供了一系列静态方法,可以用于创建、复制、删除、移动、重命名、读取、写入文件和目录等常见的文件系统操作。同时&…