【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,这样的话,是不是转成对象类型了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NASM汇编

1. 前置知识 1. 汇编语言两种风格 intel:我们学的NASM就属于Intel风格AT&T:GCC后端工具默认使用这种风格,当然我们也可以加选项改成intel风格 2. 代码 1. 段分布 .text: 存放的是二进制机器码,只读.data: 存放有初始化的…

uni-app之微信小程序实现‘下载+保存至本地+预览’功能

目录 一、H5如何实现下载功能 二、微信小程序实现下载资源功能方面与H5有很大的不同 三、 微信小程序实现文件(doc,pdf等格式,非图片)下载(下载->保存->预览)功能 四、图片预览、保存、转发、收藏&#xff1…

flask中的cookies介绍

flask中的cookies介绍 “Cookie” 在 web 开发中是一种非常重要的技术,用于在客户端(即用户的浏览器)存储信息,以便在多个页面和多个访问会话之间保持状态。Cookies 通常用于记住用户的登录信息,跟踪用户在站点上的浏…

C++——继承(1)详解

目录 1.继承的含义 2.继承的定义: 3.继承方式 例子1:基类的访问限定符为public,两个派生类的继承方式分别为public、protected时: 例子2: 基类的访问限定符为protected,两个派生类的继承方式分别为pub…

机器学习深度学习——Dropout

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——权重衰减 📚订阅专栏:机器学习&&深度学习 希望文章对你们有所帮助 Drop…

百度与AI:历史、投资和监管

来源:猛兽财经 作者:猛兽财经 百度的人工智能在中国具有先发优势 随着ChatGPT的爆火,人工智能重新引起了投资者的注意,然而人工智能并不是突然爆火的,而是全球众多公司在人工智能技术上进行数十年如一日的研发和积累&a…

MYSQL 分库分表

公司现有业务不断发展,流量剧增,交易数量突破了千万订单,但是订单数据还是单表存储,主从分离后,虽然减少了缓解读请求的压力,但随着写入压力增加,数据库的查询和写入性能都在下降,这…

Kubernetes ConfigMap - Secret - 使用ConfigMap来配置 Redis

目录 ConfigMap : 参考文档:k8s -- ConfigMap - 简书 (jianshu.com) K8S ConfigMap使用 - 知乎 (zhihu.com) ConfigMap的作用类型: 可以作为卷的数据来源:使用 ConfigMap 来配置 Redis | Kubernetes 可以基于文件创建 Conf…

服务器介绍

本文章转载与b战up主谈三国圈,仅用于学习讨论,如有侵权,请联系博主 机架型服务器 堆出同时服务百万人次机组 刀型服务器 服务器炸了 比如用户访问量暴增 超过机组的峰值处理能力,进而导致卡顿或炸服, 适合企业的塔式…

idea下tomcat运行乱码问题解决方法

idea虚拟机选项添加-Dfile.encodingUTF-8

jdk1.7与jdk1.8的HashMap区别1-基本结构与属性对比

一、数据结构差别 1.7:数组链表 1.8:数组链表红黑树 当链表的长度大于8时,数组长度大于64,原来的链表数据结构变为红黑树 二、HashMap中的关键属性和方法区别 方法/变量/类 JDK7 JDK8 备注 DEFAULT_INITIAL_CAPACITY 16 16…

一个类似Office用户界面的WPF库

博主介绍: 🌈一个10年开发经验.Net老程序员,微软MVP、博客专家、CSDN/阿里云 .Net领域优质创作者,专注于.Net领域知识、开源项目分享!🌈 🛕文末获取,加入交流群🛕 &#…

HTML一些基础知识

1、Web标准:主要包含结构、表现、行为。结构用于对网页元素进行整理和分类,主要指HTML。表现用于设置网页元素的板式、颜色、大小等外观样式,主要指的是CSS。行为主要指的是网页模型的定义以及交互的编写,主要是js文件。 Html相当…

css定义超级链接a标签里面的title的样式

效果: 代码: 总结:此css 使用于任何元素,不仅仅是a标签!

时序预测 | MATLAB实现NARX-ANFIS时间序列预测

时序预测 | MATLAB实现NARX-ANFIS时间序列预测 目录 时序预测 | MATLAB实现NARX-ANFIS时间序列预测效果一览基本介绍研究内容程序设计参考资料效果一览

基于Open3D的点云处理13-分割

平面分割(基于RANSAC) 使用RANSAC算法从点云中拟合平面; 接口:segment_plane 测试:Plane-segmentation import open3d as o3dpcd_point_cloud o3d.data.PCDPointCloud() pcd o3d.io.read_point_cloud(pcd_point_cl…

安防监控视频汇聚EasyCVR修改录像计划等待时间较长,是什么原因?

安防监控视频EasyCVR视频融合汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发等。音视频流媒体视频平台EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检…

基于传统检测算法hog+svm实现图像多分类

直接上效果图: 代码仓库和视频演示b站视频005期: 到此一游7758258的个人空间-到此一游7758258个人主页-哔哩哔哩视频 代码展示: 数据集在datasets文件夹下 运行01train.py即可训练 训练结束后会保存模型在本地 运行02pyqt.py会有一个可视化…

【C语言】函数重难点之函数递归

大家好,我是深鱼~ 目录 一、函数递归知识讲解 1.什么是递归? 2.递归的两个必要条件 2.1练习1: 2.2练习2: 二、递归与迭代 2.1练习3 2.2练习4 一、函数递归知识讲解 1.什么是递归? 程序调用自身的编程技巧称为…

Github Copilot在JetBrains软件中登录Github失败的解决方案

背景 我在成功通过了Github Copilot的学生认证之后,在VS Code和PyCharm中安装了Github Copilot插件,但在PyCharm中插件出现了问题,在登录Github时会一直Retrieving Github Device Code,最终登录失败。 我尝试了网上修改DNS&…