Key-value coding (KVC) 和 key-value observing (KVO) 是两种能让我们驾驭 Objective-C 动态特性并简化代码的机制。在这篇文章里,我们将接触一些如何利用这些特性的例子。 观察 model 对象的变化 在 Cocoa 的模型-视图-控制器 (Mo ...
分类:
其他好文 时间:
2016-04-25 16:29:16
阅读次数:
385
KVO 键值监听:当我想知道一个对象的属性是否发生改变的时候 做出响应,就需要添加监听keypath 和 key的区别keypath会自动寻找子类的属性key只会寻找当前类的属性添加键值监听[person addObserver:self forKeyPath:@“属性” options:。。。。. ...
分类:
其他好文 时间:
2016-04-25 00:42:32
阅读次数:
102
√ 概述 KVC/KVO是观察者模式的一种实现,在Cocoa中是以被万物之源NSObject类实现的NSKeyValueCoding/NSKeyValueObserving 非正式协议的形式被定义为基础框架的一部分。从协议的角度来说,KVC/KVO本质上是定义了一套让我们去遵守和实现的方法,KVC/ ...
分类:
移动开发 时间:
2016-04-23 14:43:46
阅读次数:
233
1,注册与解除注册 如果我们已经有了包含可供键值观察属性的类,那么就可以通过在该类的对象(被观察对象)上调用名 为 NSKeyValueObserverRegistration 的 category 方法将观察者对象与被观察者对象注册与解除 注册: - (void)addObserver:(NSOb ...
分类:
其他好文 时间:
2016-04-22 23:33:23
阅读次数:
243
在开发ios应用的时候,我们会经常遇到一个常见的问题:在不过分耦合的前提下,controllers间怎么进行通信。在IOS应用不断的出现三种模式来实现这种通信:
1.委托delegation;
2.通知中心Notification Center;
3.键值观察key value observing,KVO
因此,那为什么我们需要这些模式以及什么时候用它以及什么时候不用它。
下面来讨论这三...
分类:
移动开发 时间:
2016-04-22 20:43:23
阅读次数:
188
【前言介绍】 iOS的一种设计模式,观察者Observer模式(也叫发布/订阅,即Publich/Subscribe模式)。 观察者模式,包含了通知机制(notification)和KVO(Key-value-observing)机制。 在这本文中,我们将介绍在日常项目当中经常使用到的通知机制这一种 ...
分类:
移动开发 时间:
2016-04-21 15:03:20
阅读次数:
251
概述 键值编码(KVC)、键值监听(KVO)特性 键值监听KVO Key Value Observing(简称KVO)其实是一种观察者模式,利用它可以很容易实现视图组件和数据模型的分离,当数据模型的属性值改变之后作为监听器的视图组件就会被激发,激发时就会回调监听器自身。在ObjC中要实现KVO则必须 ...
分类:
移动开发 时间:
2016-04-20 13:30:25
阅读次数:
245
一,概述 KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。 二,使用方法 系统框架已经支持KVO,所以程序员在使用的时候非常简单。 1. 注册,指 ...
分类:
其他好文 时间:
2016-04-18 15:33:42
阅读次数:
139
作用 监听对象的某个属性,如果发生修改会调用observeValueForKeyPath方法 使用步骤 增加监听器 self.shop=[[Shop alloc]init]; [self.shop addObserver:self forKeyPath:@"name" options:NSKeyVa ...
分类:
其他好文 时间:
2016-04-17 20:44:53
阅读次数:
175
学习了这么久的设计模式方面的知识,最大的感触就是,设计模式不能脱离语言特性。近段时间所看的两本书籍,《大话设计模式》里面的代码是C#写的,有一些设计模式实现起来也是采用了C#的语言特性(C#的API,抽象类,在OC中是没有抽象类、没有多继承关系),《设计模式之禅》里面的代码是JAVA写的,与OC差距 ...
分类:
其他好文 时间:
2016-04-16 13:55:43
阅读次数:
252