`
ericbaner
  • 浏览: 177490 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转】Key-Value Observing 快速入门

    博客分类:
  • iOS
 
阅读更多

Key-Value Observing 快速入门

假如需要掌握Key-Value Observing机制,那么需要阅读本文应该有帮助。本文提供了Key-Value Observing的一个概述,并且解释为什么需要用它,什么时候用它。在阅读本文之前需要对Key-Value Observing需要有一个基本的了解。

Key-Value Observing机制的概述

Key-Value Observing (简写为KVO):当指定的对象的属性被修改了,允许对象接受到通知的机制。每次指定的被观察对象的属性被修改的时候,KVO都会自动的去通知相应的观察者。

KVO的优点

当有属性改变,KVO会提供自动的消息通知。这样的架构有很多好处。首先,开发人员不需要自己去实现这样的方案:每次属性改变了就发送消息通知。这是KVO机制提供的最大的优点。因为这个方案已经被明确定义,获得框架级支持,可以方便地采用。开发人员不需要添加任何代码,不需要设计自己的观察者模型,直接可以在工程里使用。其次,KVO的架构非常的强大,可以很容易的支持多个观察者观察同一个属性,以及相关的值。

KVO如何工作

需要三个步骤来建立一个属性的观察员。理解这三个步骤就可以知道KVO如何设计工作的。

 

(1)首先,构思一下如下实现KVO是否有必要。比如,一个对象,当另一个对象的特定属性改变的时候,需要被通知到。

例如,PersonObject希望能够觉察到BankObject对象的accountBalance属性的任何变化。

 

(2)那么PersonObject必须发送一个“addObserver:forKeyPath:options:context:”消息,注册成为BankObject的accountBalance属性的观察者。

(说明:“addObserver:forKeyPath:options:context:”方法在指定对象实例之间建立了一个连接。注意,这个连接不是两个类之间建立的,而是两个对象实例之间建立的。)

 

(3)为了能够响应消息,观察者必须实现“observeValueForKeyPath:ofObject:change:context:”方法。这个方法实现如何响应变化的消息。在这个方法里面我们可以跟自己的情况,去实现应对被观察对象属性变动的相应逻辑。

 

(4)假如遵循KVO规则的话,当被观察的属性改变的话,方法“observeValueForKeyPath:ofObject:change:context:”会自动被调用。

 

后记:本文提供的只是KVO的一个简要概述。KVO很强大很灵活,所以还有很多细节,如自动和手动键值观察,或一对多和一对一的关系,这些后面再讲。

 

 

http://www.cocoadev.cn/CocoaDev/Key-Value-Observing-Quick-Start-cn.asp

分享到:
评论

相关推荐

    Cocoa.Programming.for.Mac.OS.X,3rd,2008(中文,仅18章).pdf

    第七章:Key-Value Coding.Key-Value Observing 第八章:NSArrayController 第九章:NSUndoManager 第十章:Archiving 第十一章:Core Data 基本原理 第十二章:Nib 文件和 NSWindowController 第十三章:User ...

    Objective_c快速入门及解释

    Objective-C 是一种面向对象的编程语言,...继续深入学习,如 Blocks、GCD(Grand Central Dispatch)、Category、KVC(Key-Value Coding)和 KVO(Key-Value Observing)等,将使你成为更熟练的 Objective-C 开发者。

    objcObject-C 入门教程代码

    6. **KVC(Key-Value Coding)** 和 **KVO(Key-Value Observing)**:KVC允许我们通过键来间接访问对象的属性,而无需知道具体的访问方法。KVO则允许我们观察并响应某个属性值的变化。 7. **Foundation框架**:这...

    Learn Object-C

    - KVC(Key-Value Coding)与KVO(Key-Value Observing) - GCD(Grand Central Dispatch)并发模型 - NSOperation与NSOperationQueue - Core Data框架的使用 6. **实践案例分析** - 通过实际项目来巩固所学知识,...

    Cocoa Programming for Mac OS X 3rd(中文版)

    #### 第七章:Key-Value Coding & Key-Value Observing - **Key-Value Coding (KVC)**:KVC提供了一种间接访问对象属性的方式,无需直接调用getter或setter方法。 - **绑定(Binding)**:介绍了如何使用KVC实现模型和...

    Soulful docs for Swift & Objective-C.zip

    4. **Key-Value Coding (KVC)** 和 **Key-Value Observing (KVO)**:提供属性的间接访问和观察机制。 5. **NSObjects and Delegates**:基础对象类,支持对象间的通信和事件处理。 6. **Cocoa和Cocoa Touch**:Apple...

    无线互联Objective-C

    最后,`chapter9_KVC(Key-Value Coding)、KVO(Key-Value Observing)与通知(Notification)`。KVC允许间接访问对象属性,无需暴露getter和setter。KVO则允许监听某个属性的变化,当属性值改变时会触发回调。通知...

    objective-c 教程

    Key-Value Coding (KVC)和Key-Value Observing (KVO)是Objective-C中用于属性访问和监听变化的技术。 10. **iOS应用生命周期** 学习如何管理应用的生命周期,理解AppDelegate的作用,以及如何处理启动、暂停、恢复...

    IOS学习PPT

    6. **KVO(Key-Value Observing)**:KVO是Objective-C中的一个机制,可以监听并响应某个对象属性的变化,从而实现动态的数据更新和视图刷新,常用于MVVM架构中的数据驱动。 从【压缩包子文件的文件名称列表】"IOS...

    Objective-C基础教程源代码 Learn objective-C on the Mac Mark Dalrymple著书

    9. **NSPredicate和KVC/KVO**:NSPredicate用于过滤和查询数据,Key-Value Coding (KVC)和Key-Value Observing (KVO)是强大的数据绑定技术,可动态地访问和监听对象属性。 10. **Xcode集成开发环境**:Xcode是Apple...

    oc疯狂讲义

    - KVC(Key-Value Coding)和KVO(Key-Value Observing):提供一种间接访问对象属性的方式,以及观察并响应属性变化的机制。 3. **Foundation框架** - NSObjects和NSArrays:学习如何使用基础的NSObject类及其...

    Objective-C基础教程 第2版

    - KVC(Key-Value Coding)允许间接访问对象属性,而KVO(Key-Value Observing)可以监听属性变化。 这份“Objective-C基础教程 第2版”很可能会涵盖以上所有内容,并可能通过示例代码和练习帮助读者理解和掌握...

    iOS开发入门.rar

    同时,了解如何使用Notification Center实现应用内消息传递,以及如何使用Key-Value Observing(KVO)监听对象属性的变化,也是提升应用交互性的重要技能。 最后,为了提高用户体验,了解动画和过渡效果的实现是...

    object-c基础教程

    完成基础学习后,可以进一步探索KVC(Key-Value Coding)、KVO(Key-Value Observing)、GCD(Grand Central Dispatch)等高级主题,提升开发效率。 通过阅读《Object-C基础教程》的PDF文档,你将能够逐步了解并...

    Apress.Objective-C.for.Absolute.Beginners.2nd.Ed.2012

    10. **KVC(Key-Value Coding)与KVO(Key-Value Observing)**:KVC是通过键值访问对象属性的机制,KVO则提供了监听对象属性变化的能力,常用于数据绑定和响应式编程。 11. **Storyboard与Interface Builder**:...

    好学的 Objective-C pdf

    此外,还介绍了键值编码(Key-Value Coding,KVC)和键值观察(Key-Value Observing,KVO)技术,这两项技术极大地简化了对象之间数据访问和变更通知的机制,是构建动态交互界面的关键。协议(Protocols)的使用,...

    Object_C基础原码

    8. **KVC(Key-Value Coding)和KVO(Key-Value Observing)** KVC允许通过键路径访问对象的属性,即使这些属性没有公开的setter和getter方法。KVO则允许观察并响应对象属性的变化,用于实现数据绑定和响应式编程。...

    Calculator

    3. KVC和KVO:键值编码(Key-Value Coding)和键值观察(Key-Value Observing)在Swift中的应用,用于动态绑定属性和值。 4. 自动布局(Auto Layout):设置约束以确保用户界面在不同设备尺寸下都能正确显示。 五...

    objective-c学习资料

    13. **KVC(Key-Value Coding)与KVO(Key-Value Observing)**: KVC允许间接访问对象属性,而KVO则允许监听属性的变化,常用于数据绑定和响应式编程。 14. **Delegation与Notification**: 委托(Delegation)...

Global site tag (gtag.js) - Google Analytics