美文网首页
iOS KVC 和KVO 老生常谈系列(一)

iOS KVC 和KVO 老生常谈系列(一)

作者: iOS开发小学生 | 来源:发表于2019-04-16 11:01 被阅读0次

首先,给大家讲一下这两个基础知识点的重点。

1.KVO KVC 没联系
2.KVC 是键值编码
2.KVO 是监听属性值的改变
3.KVO 底层实现原理是系统给当前类创建子类 , 在子类 setter 方法调用父类的 setter 方法
***通过修改 isa 指针指向系统创建的子类 实现当前类属性值改变的监听***

一、KVC与KVO

*“KVC”:key value Coding(键值编码)
*目的:间接的修改或获取对象的属性,降低程序(类与类)之间的耦合度.
*“KVO”:key value Observer(键值观察),观察者模式.(检测模型变化用的多)
*目的:通常用于观察某个对象的某个属性发生变化时,及时做出相应.

二、KVC的使用方式

KVC被称为iOS开发平台的大招!!! 能快速修改对象属性。
*[p1setValue:@“xxxx”forKeyPath:@“name”];修改指定对象属性.
*[arrvalueForKeyPath:@“book.bookName”];  获取对象属性.
*KVC通过键能直接取得数组.
*在使用KVC时, 一定要保证键值是存在的.
*原理: KVC取值时, 如果发现取值的对象不包含指定的键值,会自动进入对象内部成员进行查找.

三、KVO的使用方式

*KVO通常用于观察”对象某个属性”发生变化时,做出相应的反应.(多用于观察模型数据)
*KVO和通知中心的一个区别 : KVO只能盯着某个对象(在当前区域内部工作),通知中心可以穿越很多层(如viewController).
*KVO使用步骤:
*1.[stuaddObserver:selfforKeyPath:@"name" options:NSKeyValueObservingOptionNew |NSKeyValueObservingOptionOld context:@"myObserver"];
*2.observeValueForKeyPath.  当指定键值发生改变时, 会自动调用这个方法
*3.removeObserver. 所有观察者模式的性能都不好,需要及时移除。

相关文章

  • KVC 和 KVO

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

  • KVC

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

  • iOS日记15-KVC

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

  • iOS KVC 和KVO 老生常谈系列(一)

    首先,给大家讲一下这两个基础知识点的重点。 一、KVC与KVO 二、KVC的使用方式 三、KVO的使用方式

  • KVC、KVO

    IOS开发系列--Objective-C之KVC、KVO - KenshinCui - 博客园

  • iOS知识梳理11:KVC 和KVO

    参考链接:[精辟]KVO 和 KVC 的区别和用法,干货!!!iOS开发技巧系列---详解KVCKVC的优点和缺点...

  • ReactiveCocoa相关

    随手记录: 1、iOS开发系列--Objective-C之KVC、KVO 2、ReactiveCocoa初探

  • 无标题文章

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

  • 知识点3

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

  • iOS-KVO浅谈

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

网友评论

      本文标题:iOS KVC 和KVO 老生常谈系列(一)

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