【KVC补充 Objective-C语言】

这篇具有很好参考价值的文章主要介绍了【KVC补充 Objective-C语言】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、KVC补充

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos
【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

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

key value coding

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

是不是这个啊,key-value coding

然后点击,进来

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

首先,新建一个项目

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

name:演示KVC常用方法

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

新建一个Dog类

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

这是不是一条,狗吧

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

等会儿再Person,马上就Person了

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

好,再建一个人,Person类

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos
【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

人是不是养了一条狗

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

这是人的姓名,

人是不是养了一条狗

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

导入“Dog”类的头文件

好,人里面养了一条狗

那么,接下来,注意看,

main.m文件里面

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

这里面

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

创建一个人对象

创建一条狗对象

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

然后呢,再来一条狗

叫什么,chihuahua

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

p1.dog = chihuahua;

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

chihuahua.name = @“吉娃娃”;

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

我下面直接这么打印

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

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

是不是

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

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

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

为对象的属性赋值

setValuesForKeys

这个方法

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

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

上面是

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

下面是

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

我们可以用这个setValue forKeyPath

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

第一个和第二个

1)forKey:

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

2)forKeyPath

基本上是一样的

但是forKeyPath

功能要比第一个强大

怎么强大呢

等会儿再说

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

然后,给哪个属性赋值呢

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

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

@“name”

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

额,再来一个age吧

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

叫什么,assign

@property(nonatomic,assign)int age;

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

年龄,注意

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos

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

给它来个什么

【KVC补充 Objective-C语言】,Objective-C,objective-c,cocoa,macos文章来源地址https://www.toymoban.com/news/detail-614348.html

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

到了这里,关于【KVC补充 Objective-C语言】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Effective Objective - C】—— 熟悉Objective-C

    Objective-C通过一套全新语法,在C语言基础上添加了面向对象特性。Objective-C的语法中频繁使用方括号,而且不吝于写出极长的方法名,这通常令许多人觉得此语言较为冗长。其实这样写出来的代码十分易读,只是C++或Java程序员不太能适应。 Objective-C语言学起来很快,但有很

    2024年01月16日
    浏览(47)
  • objective-c 基础学习

    目录 第一节:OC 介绍 ​​第二节:Fundation 框架 ​第三节:NSLog 相对于print 的增强 ​第四节:NSString ​第五节:oc新增数据类型 第六节: 类和对象 ​类的方法的声明与实现 ​第七节:类和对象的存储 第八节:nil 与 NULL 第九节:分组导航标记#pragma mark ​第十节:方法与函

    2024年02月07日
    浏览(42)
  • 第一章 熟悉Objective-C

    Objective—C语言是由Smalltalk演化而来,后者是消息型语言的鼻祖,所以该语言使用的“消息结构”而非“函数调用”。 1. 消息和函数调用之间的区别 关键区别在于: 使用消息结构的语言,其运行所应执行的代码由运行环境来决定;而使用函数调用的语言,则由编译器决定。

    2024年01月18日
    浏览(40)
  • use gnustep objective-c

    专注于概念,而不是迷失在语言技术细节中 编程语言的目的是成为一个更好的程序员; 也就是说,在设计和实现新系统以及维护旧系统方面变得更加有效 header preprocess interface implementation method variable declare and expression comment basic integer set and float set enum type void type derive type incl

    2024年02月14日
    浏览(42)
  • Effective Objective-C 学习(四)

    在执行后台任务时,GCD 并不一定是最佳方式。还有一种技术叫做 NSOperationQueue,它虽然与 GCD 不同,但是却与之相关,开发者可以把操作以 NSOperation 子类的形式放在队列中,而这些操作也能够并发执行。 GCD是纯C的API,而NSOperationQueue是Objective-C的对象。这意味着使用GCD时,任

    2024年02月19日
    浏览(40)
  • Effective Objective-C 学习(二)

    “属性”(property)是 Objective-C 的一项特性,用于封装对象中的数据。Objective-C 对象通常会把其所需的数据保存为各种实例变量。实例变量一般通过“存取方法”来访问。其中,“获取方法”(getter)用于读取变量值,而“设置方法”(setter)用于写入变量值。开发者可以令

    2024年02月20日
    浏览(48)
  • Objective-C日期NSDate使用

    2024年01月21日
    浏览(50)
  • Effective Objective-C 学习(三)

    Objective-C 使用引用计数来管理内存:每个对象都有个可以递增或递减的计数器。如果想使某个对象继续存活,那就递增其引用计数:用完了之后,就递减其计数。计数变为 0时,就可以把它销毁。 在ARC中,所有与引用计数有关的方法都无法编译(由于 ARC 会在编译时自动插入

    2024年02月22日
    浏览(49)
  • Objective-C获取变量类型的方法

    在Objective-C中,要获取一个对象的类型,可以使用[object class]方法。这将返回一个Class对象,表示该对象的类型。 另外,typeid是C++中的,用于获取一个变量的类型信息。在Objective-C中,typeid并不适用于获取对象类型。相反,您应该使用[object class]方法来获取对象的类型。

    2024年02月13日
    浏览(43)
  • Objective-C之Class底层结构探索

    在讲 OC-Class 底层类结构之前,先看下下面这张图: 通过isa走位图 得出的结论是: 1,类,父类,元类都包含了 isa , superclass 2,对象isa指向类对象,类对象的isa指向了元类,元类的 isa 指向了根元类,根元类 isa 指向自己 3,类的 superclass 指向父类,父类的 superclass 指向的根类

    2024年03月24日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包