KVO的简单介绍

作者: Lonely__M | 来源:发表于2015-05-27 10:11 被阅读189次

一,概述

KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。

二、使用方法

系统框架已经支持KVO,所以程序员在使用的时候非常简单。

1. 注册,指定被观察者的属性,

2. 实现回调方法

3. 移除观察

三、代码示例

假设一个场景,定义一个Person类,属性有name,age,当年龄改变时,显示当前年龄

1.定义Person类

@interfacePerson :NSObject

@property(strong,nonatomic)NSString*name;

@property(nonatomic,assign)NSIntegerage;

@end

2.在controller中引入Person,实例化并监听属性

当单击时,改变age,实现回调方法

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void*)context

@interfaceViewController()

{

Person*personKVO;

}

@end

@implementationViewController

- (void)viewDidLoad {

[superviewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

personKVO= [[Personalloc]init];

[personKVOsetValue:@"admin"forKey:@"name"];

[personKVOsetValue:@"20"forKey:@"age"];

[personKVOaddObserver:selfforKeyPath:@"age"options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOldcontext:nil];

}

- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event

{

//[personKVO setValue:@"21" forKey:@"age"];

[personKVOsetAge:13];

}

- (void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void*)context

{

if([keyPathisEqual:@"age"])

{

idage =[personKVOvalueForKey:@"age"];

NSLog(@"age改变%@",age);

}

}

- (void)didReceiveMemoryWarning {

[superdidReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

当Model值发生改变时,监听对象会立即得到通知,适用于界面数据展示。

简单随笔,愿与君共勉。

相关文章

  • KVO的简单介绍

    一,概述 KVO,即:Key-Value Observing,它提供一种机制,当指定的对象的属性被修改后,则对象就...

  • iOS KVO的简单介绍

    拖拽手势和kvo

  • KVO 的实现原理

    KVO 简单介绍 KVO的全称是Key-Value Observing,俗称“键值监听”,可以用于监听某个对象属性...

  • KVC和KVO的简单介绍

    一.KVC和KVO的概念 1.KVC:NSKeyValueCoding的简称,是一种可以直接通过字符串的名字(ke...

  • FBKVOController

    FBKVOController介绍 简单来说,Facebook 开源的这套代码,主要是对我们经常使用的 KVO 机...

  • KVO与KVC原理

    KVO 一、KVO的介绍 1、什么是KVO KVO的全称是Key-Value Observing的缩写,是对观...

  • 4.1 KVC/KVO —— KVC简单介绍

    KVC是一种可以通过字符串的名字(key)来访问类属性的机制。而不是单单通过调用Setter、Getter方法访问...

  • KVO 解析

    KVO解析(一) —— 基本了解KVO解析(二) —— 一个简单的KVO实现KVO解析(三) —— KVO合规性K...

  • KVO介绍

    KVO全称Key Value Observing.直译为键值观察。KVO主要用于视觉交互方面,比如当某些数据变化了...

  • KVO介绍

    概述 KVO是苹果提供的一套事件通知机制,允许对象监听另一个对象特定属性的改变,并在改变时接收到事件。由于KVO的...

网友评论

    本文标题:KVO的简单介绍

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