美文网首页
KVC机制-初体验

KVC机制-初体验

作者: TG_IT_2011 | 来源:发表于2016-11-16 18:04 被阅读0次

一、简介

NSKeyValueCoding非正式协议(分类): 规定了允许了App通过key(name)值来间接的访问一个对象的属性和成员变量(不管是私有还是公共的),而不是直接调getter&setter方法或者实例变量

阅读文档:

1. 学习如何在App中使用键值编码 
2. 如何使你的类与其他的技术进行交互. KVC是KVO、绑定、CoreData和苹果脚本的基础。

二、文档架构

KVC包含如下文档:

1. 什么是KVC:KVC概述
2. KVC术语:被用于引用对象属性的通用的术语
3. KVC基础:描述使用KVC的基本规则
4. KVC的Getter&Setter方法:被用于引用对象属性的通用的术语
5. 键值校验:如何实现属性校验
6. KVC实现顺序:描述一个类KVC的实现顺序
7. 支持标量和结构体:描述KVC支持的数据类型
8. 集合操作:列举集合操作,并描述它们的使用
9. 访问搜索实现细节:解释如何适当的决定getter&setter方法或者实例变量
10. 描述属性关系:使用元数据定义对象与它们的属性之间的关系
11. 性能方面的考虑:被用于引用对象属性的通用的术语

三、方法体验

源码地址:https://github.com/TonnyLoves/KVC-

*- (nullable id)valueForKeyPath:(NSString )keyPath; // 根据键路径获取值
*- (void)setValue:(nullable id)value forKeyPath:(NSString )keyPath; // 根据键路径设置值
*- (nullable id)valueForKey:(NSString )key; // 根据键获取值

*- (void)setValue:(nullable id)value forKey:(NSString )key; // 根据键获取值

TGPerson *p = [[TGPerson alloc]init];
[p setValue:@"10086" forKeyPath:@"age"]; // setter --> _age --> age
[p setValue:@"tang" forKeyPath:@"stuNum"];
[p setValue:@(1) forKeyPath:@"name"];// 访问真私有属性,注意数据类型的变化。
//[p setValue:@"男" forKeyPath:@"sex"]; // 访问私有属性
NSLog(@"%@",[p valueForKeyPath:@"name"]);

四、问题剖析

1. Value的类型?

任意对象。设置什么类型,值就是什么类型的。

2. KVC的执行原理?

setter&getter - _(key) - key。
3. 明确KVC能够访问所有的属性和成员变量。

五、遗留问题

key与keyPath的区别?下次解答哟,小伙伴们可以看看哟

相关文章

  • KVC机制-初体验

    一、简介 NSKeyValueCoding非正式协议(分类): 规定了允许了App通过key(name)值来间接的...

  • 谈KVC、KVO(重点观察者模式)机制编程

    谈KVC、KVO(重点观察者模式)机制编程 谈KVC、KVO(重点观察者模式)机制编程

  • iOS面试题续

    KVO和KVC: KVC: KVC是键值编码,是一种间接访问对象实例变量的机制,只用该机制不需要调用set或get...

  • KVC 与 KVO 使用和原理解析

    KVC 什么是 KVC KVC 主要方法 KVC 定义了一种按名称访问对象属性的机制,支持这种访问的主要方法是: ...

  • 理解 KVC 实现机制

    KVC概述 : KVC和KVO都属于键值编程而且底层实现机制都是isa-swizzing. KVC是Key Val...

  • 【iOS基础】KVC / KVO详解

    KVC(Key-value coding) KVC是一种基于NSKeyValueCoding非正式协议的机制,能让...

  • KVC和KVO

    KVC和KVO都属于键值编程而且底层实现机制都是isa-swizzing 一.KVC概述 1.kvc 是一种通过(...

  • KVC & KVO 的实践和理解

    1.KVC 部分 KVC全称是Key Value Coding,KVC提供了一种间接访问其属性方法或成员变量的机制...

  • iOS KVC与KVO

    KVC、KVO概述 KVC(NSKeyValueCoding) "键-值 编码"是一种间接访问对象的属性的机制...

  • KVO 和 KVC

    1.KVC KVC即指NSKeyValueCoding, 一种可以通过key的名称间接访问property的机制 ...

网友评论

      本文标题: KVC机制-初体验

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