美文网首页
Objective-C KVC、KVO

Objective-C KVC、KVO

作者: 738bc070cd74 | 来源:发表于2015-09-19 16:25 被阅读83次

键值编码KVC

KVC的操作方法由NSKeyValueCoding协议提供,而NSObject就实现了这个协议,也就是说ObjC中几乎所有的对象都支持KVC操作,常用的KVC操作方法如下:

  • 动态设置
    setValue:属性值 forKey:属性名(用于简单路径)
    setValue:属性值 forKeyPath:属性路径(用于复合路径,例如Person有一个Account类型的属性,那么person.account就是一个复合属性)
  • 动态读取
    valueForKey:属性名
    valueForKeyPath:属性名(用于复合路径)

键值监听KVO

KVO其实是一种观察者模式,利用它可以很容易实现视图组件和数据模型的分离,当数据模型的属性值改变之后作为监听器的视图组件就会被激发,激发时就会回调监听器自身。在ObjC中要实现KVO则必须实现NSKeyValueObServing协议,不过幸运的是NSObject已经实现了该协议,因此几乎所有的ObjC对象都可以使用KVO。

在ObjC中使用KVO操作常用的方法如下:

  • 注册指定Key路径的监听器: addObserver: forKeyPath: options: context:
  • 删除指定Key路径的监听器: removeObserver: forKeyPath
  • removeObserver: forKeyPath: context:
  • 回调监听 observeValueForKeyPath: ofObject: change: context:

KVO的使用步骤也比较简单:
通过addObserver: forKeyPath: options: context:为被监听对象(它通常是数据模型)注册监听器
重写监听器的observeValueForKeyPath: ofObject: change: context:方法

相关文章

  • KVC 和 KVO

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

  • [转]KVO & KVC

    本文转自:Objective-C中的KVC和KVO. KVC KVO2.1. Registering for Ke...

  • KVO KVO 温习

    KVC 与 KVO 是 Objective-C 的关键概念. KVC: KVC,即是指 NSKeyValueCod...

  • iOS面试题:KVC的赋值和取值过程是怎样的?KVO原理是什么?

    更多:iOS面试题大全 1、KVC赋值 2、 KVC取值 3、 KVO原理 KVO 是 Objective-C 对...

  • KVC

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

  • 再次学习KVO 与 KVC

    简介 KVO 与KVC 是 充分利用了objective-c 动态语言特性的一种机制 KVO(同步运行) KVC

  • 复习一下 iOS 基础 (2)

    KVO/KVC KVO 的实现依赖于 Objective-C 强大的 Runtime当观察某对象A时,KVO机制动...

  • KVC、KVO

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

  • iOS开发之KVC和KVO

    KVC和KVO是Objective-C中经常被提到的两个术语。这篇文章将解释KVC和KVO的定义和最基本的用法,更...

  • ReactiveCocoa相关

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

网友评论

      本文标题:Objective-C KVC、KVO

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