美文网首页
[iOS]KVC--键值编码的方式赋值取值

[iOS]KVC--键值编码的方式赋值取值

作者: pingpong_龘 | 来源:发表于2016-03-24 23:52 被阅读187次

KVC
除了常用的set/get方法取值赋值之外,还可以使用键值编码的方式赋值取值
(说直接点,就是一个类,可以直接通过setValueForKey的方式赋值和取值)
iOS中我们每次声明一个成员变量,一般使用@property的方式,该方式默认存在set和get方法,但除此之外,我们使用如下方法亦可:

类PoClass,有个成员变量name

@class Course;
@interface PoClass : NSObject
{
    NSString *name;
}
@end

如果name没有@property

PoClass *po = [[PoClass alloc]init]

[po setValue:@"polen" forKey:@"name"];
NSString *getName = [po valueForKey:@"name"]

[po setValue:@"polenPath" forKeyPath:@"course.name"];
NSString *getName  = [po valueForKeyPath:@"course.name"];

key的方式和path的方式,可以理解为对setter和getter方式的补充。
如果有setter/getter方法,则优先会调用setter/getter方法,没有则通过查看_key或者key的value.

参照推酷:

首先去检查是否存在setter,getter方法,如果不存在,它将在内部查找名_key或key的实例变量。如果
还是没有那就会报错误。通过KVC 可以获取不存在getter方法的对象值,无需通过对象指针直接访问。
【注意】:当我们通过setValue:forKey:设置对象的值,或者valueForKey:来获取对象的值时,如果对象的实例变量为基本数据类型时(例如:char,int,float,BOOL),我们需要对这些数据类型进行封装。

相关文章

  • [iOS]KVC--键值编码的方式赋值取值

    KVC除了常用的set/get方法取值赋值之外,还可以使用键值编码的方式赋值取值(说直接点,就是一个类,可以直接通...

  • KVC(Key Value Coding(键值编码))

    全称:Key Value Coding(键值编码) 赋值 取值

  • KVC总结

    简介 KVC: Key Value Coding (键值编码) 作用: 取值和赋值 改变对象的私有成员变量的值(重...

  • KVC、KVO、RunTime、RunLoop

    KVC-->Key-Value Coding:键值编码 (KVC) 原理:KVC运用了一个isa-swizzlin...

  • KVC

    概念 KVC即Key-Vaue-Codeing,用于键值编码 使用场景 正常的的取值赋值 ,如上述API KVC字...

  • KVC 和 KVO用法介绍

    KVO:键值监听:用于监听某个属性的改变,并做一些处理 KVC:键值编码 KVC赋值,取值,一些计算功能 1.给模...

  • KVC & KVO

    1 .KVC(Key Value Coding) 键值编码方法,可以给属性,甚至是私有属性进行赋值和取值,简化字典...

  • iOS进阶_KVC(&KVC赋值取值过程分析&KVC自定义&异常

    KVC(Key-value coding) 键值编码 基本使用 能够对对象的私有成员进行取值赋值 对数值和结构体型...

  • iOS底层系列:KVC

    前言 今天我们简单聊一下KVC,键值编码。平时我们给属性赋值或者取值都是使用点语法,调用属性的set或者get方法...

  • iOS-KVC相关

    KVC相关 一、 iOS成员变量,实例变量,属性变量的区别 二、KVC取值、赋值原理 *学习方式:1、分析源码 -...

网友评论

      本文标题:[iOS]KVC--键值编码的方式赋值取值

      本文链接:https://www.haomeiwen.com/subject/bybrlttx.html