美文网首页
【力学】KVC基本原理

【力学】KVC基本原理

作者: 韩叨叨 | 来源:发表于2017-04-24 21:01 被阅读4次

KVC,即Key-Value-Coding,键值编码。一个非正式的 Protocol,提供一种机制来间接访问对象的属性。

最基本的两个方法:

setValue: 属性值 forKey:属性名:
valueForKey:属性名:

举个栗子
声明一个有name,age属性的User类

[user setValue:@"孙悟空" forKey:@"name"];
[user setValue:@"[NSNumber numberWithInt]" forKey:@"age"];
[user valueForKey: @"name"];
[user valueForKey:@"age"];

在KVC编程中,无论调用这两个哪个方法,都是通过NSString对象来指定被操作属性的。

底层机制都是:
(1)程序优先考虑调用“setName:属性值”(valueForKey)代码,通过setter(getter)方法完成设置。
(2)如果没有setName:方法,KVC机制会搜索该类名为_name的成员变量,无论该成员变量是在类接口部分定义,还是在实现部分定义,也无论用哪个访问控制符修饰,这条KVC代码底层实际都是对_name成员变量的赋值。
(3)如果既没有setName:的方法,也没有定义_name成员变量,KVC机制会继续搜索该类名为name的成员变量,无论该成员变量是在类接口部分定义,还是在实现部分定义,也无论用哪个访问控制符修饰,底层是对name成员变量的赋值。
(4)如果还没找到,系统就会执行该对象的setValue:forUndefinedKey:方法。
而这个方法需要重写,否则会导致程序异常结束。

同理,valueForKey:@“name”方法机制如上。

相关文章

  • 【力学】KVC基本原理

    KVC,即Key-Value-Coding,键值编码。一个非正式的 Protocol,提供一种机制来间接访问对象的...

  • 【iOS】KVC的实现

    KVC的基本使用 KVC的基本原理 setValue:forKey 验证在MJPerson中重写这几个方法,首先打...

  • KVC的基本原理

    KVC的原理 遍历字典里面所有的key,假如有个叫name的key 就去模型中查找有没有setName:,如果有,...

  • KVC详解

    KVC 目录结构KVC定义KVC取值和设置KVC使用keyPathKVC处理字典KVC作用 参考:iOS KVC和...

  • iOS原理篇(二): KVC实现原理

    KVC实现原理 什么是 KVC KVC基本使用 KVC 原理 总结 一 、 什么是KVC KVC的全称是Key-V...

  • 概要 流体力学基本原理 压力、面积、力三者之间的关系 流体力学常识 流动是流体的一般运动。这虽然像是一句废话,但是...

  • 听书 |《上帝掷骰子吗?》:不把固有认知作为尺子,去衡量变化发展

    1.听书笔记 01)本书梳理了量子力学基本原理、百余年的发展史及重要事件,论述了量子力学对人类认知的颠覆性影响。 ...

  • 《上帝掷骰子吗》

    上帝掷骰子吗 讲述了量子力学从诞生至现在的历史,这个过程中的重要事件及科学家之间的观点争执,量子力学的基本原理和对...

  • iOS 关于KVC的一些总结

    本文参考: KVC官方文档 KVC原理剖析 iOS KVC详解 KVC 简介 KVC全称是Key Value Co...

  • KVC,KVO

    KVC , KVO KVC和KVO的区别及应用 KVC/KVO原理 1. KVC键值编码 KVC,即是指NSKey...

网友评论

      本文标题:【力学】KVC基本原理

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