美文网首页
iOS KVC和KVO

iOS KVC和KVO

作者: T_label | 来源:发表于2017-04-12 22:17 被阅读29次

KVC:键值编码,一个非正式的协议,使用字符串访问一个对象实例变量的机制。

一个对象在调用setvalue时,
1、首先根据方法名找到运行方法的时候所需要的环境参数。
2、它会从isa指针结合环境参数找到具体方法实现的接口。
3、再直接查找得到的具体的方法。

KVO:键值监听,指定对象的属性被修改,对象就会接受到通知。
使用KVO的前提是遵循 KVO 的属性设置方式来变更属性值。

使用步骤:
1、注册观察者,实施监听
2、回调方法中处理属性变化
3、移除观察者

原理:当观察对象A时,KVO机制动态创建A的子类,并为子类重写了被观察属性keyPath的set方法,set方法负责通知被观察对象属性改变的状况。
进一步分析:
利用对象的isa指针指向该对象的类,对象注册为观察者时,isa指针指向新子类,这个被观察的对象就变成新子类的对象,因而在该对象上对set方法调用就会调用已重写的set方法,从而激活键值通知机制。

通知(notification)比KVO多了发送通知的一步,对象之间直接交互,notification明显的多,KVO是由系统通知的。通知的优点是监听不局限于属性变化,可以对各种各样的状态进行监听,监听范围广,例如键盘的弹起,前后台等系统监听。

相关文章

  • KVC 和 KVO

    iOS-KVC和KVO精炼讲解(干货)KVC 和 KVOiOS开发系列--Objective-C之KVC、KVO细...

  • 无标题文章

    ios中的 kvc和kvo的区别 KVC编程时setValue(value: AnyObje...

  • 知识点3

    26. 什么是KVC和KVO? KVO: iOS开发-KVO的奥秘 http://www.jianshu.com/...

  • KVC

    iOS 如何使用KVC iOS开发UI篇—Kvc简单介绍 iOS开发系列--Objective-C之KVC、KVO

  • KVC

    KVC原理剖析 - CocoaChina_让移动开发更简单 iOS开发底层细究:KVC和KVO底层原理 | iOS...

  • iOS面试 - 收藏集 - 掘金

    KVC 与 KVO 拾遗补缺 - iOS - 掘金KVC 和 KVO 是 Cocoa 框架提供的一个非常强的特性,...

  • iOS - KVO

    [toc] 参考 KVO KVC 【 iOS--KVO的实现原理与具体应用 】 【 IOS-详解KVO底层实现 】...

  • iOS-KVO浅谈

    上一篇:iOS-KVC浅谈 前言:KVO 作为 KVC 的同袍兄弟,功能更强大,聊聊 KVO。 一、KVO 简介 ...

  • iOS日记15-KVC

    1.iOS开发技巧系列---详解KVC 2.漫谈 KVC 与 KVO 3.KVC/KVO原理详解及编程指南 关键点...

  • KVC,KVO

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

网友评论

      本文标题:iOS KVC和KVO

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