KVO(键-值观察)
// 1.键-值观察
// 2.它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。
// 3.符合KVC(Key-ValuedCoding)机制的对象才可以使用KVO
// 4.实现过程
// ①注册,指定被观察者
// ②实现回调方法
// ③移除观察
- (
void
)viewDidLoad
{
[
super
viewDidLoad
];
// Do any additional setup after loading the view from its nib.
// 实例化一个观察者对象
self
.stockForKVO
= [[
StockData
alloc
]
init
];
// 初始化
[
self
.stockForKVO
setValue
:
@"searph"
forKey
:
@"stockName"
];
// KVC
[
self
.stockForKVO
setValue
:
@"10.0"
forKey
:
@"price"
];
// KVC
// 监听并显示在 lable 里 - 注册观察者
[
self
.stockForKVO
addObserver
:
self
forKeyPath
:
@"price"
options
:
NSKeyValueObservingOptionNew
context
:nil
];
self
.myLable
.textColor
= [
UIColor
redColor
];
self
.myLable
.text
= [
self
.stockForKVO
valueForKey
:
@"price"
];
// 创建 button 按钮
UIButton
*button = [
UIButton
buttonWithType
:UIButtonTypeRoundedRect];
[button
setFrame
:CGRectMake(
9
0
,
1
5
0
,
1
4
0
,
4
2
)];
[button
setTitle
:
@"按钮"
forState
:UIControlStateNormal];
[button
addTarget
:
self
action
:
@selector
(buttonAction)
forControlEvents
:UIControlEventTouchUpInside];
[
self
.view
addSubview
:button];
}
// button响应方法
- (
void
)buttonAction
{
[
self
.stockForKVO
setValue
:
@"20.0"
forKey
:
@"price"
];
}
// 回调方法
- (
void
)observeValueForKeyPath:(
NSString
*)keyPath
ofObject
:(
id
)object
change
:(
NSDictionary
*)change
context
:(
void
*)context
{
if
([keyPath
isEqualToString
:
@"price"
])
{
self
.myLable
.text
= [
self
.stockForKVO
valueForKey
:
@"price"
];
}
}
- (
void
)dealloc
{
// 移除观察者
[
self
.stockForKVO
removeObserver
:
self
forKeyPath
:
@"price"
];
}
KVO(键-值观察)的更多相关文章
- K-V-O 键值观察机制
在两个不同的控制器之间传值是iOS开发中常有的情况,应对这种情况呢,有多种的应对办法.kvc就是其中的一种,所以,我们就在此解释之. key value observing 键值观察,给人一种高 ...
- iOS - KVO 键值观察
1.KVO KVO 是 Key-Value Observing 的简写,是键值观察的意思,属于 runtime 方法.Key Value Observing 顾名思义就是一种 observer 模式用 ...
- KVO - 键值观察
[基本概念] 键值观察是一种使对象获取其他对象的特定属性变化的通知机制.控制器层的绑定技术就是严重依赖键值观察获得模型层和控制器层的变化通知的.对于不依赖控制器层类的应用程序,键值观察提供了一种简化的 ...
- KVO键值观察的具体实现
1.KVO简介 KVO是Objective-C对观察者设计模式的一种实现,它提供一种机制,指定一个被观察对象(如A类),当对象中的某个属性发生变化的时候,对象就会接收到通知,并作出相应的处理.在MVC ...
- OC键值观察KVO
什么是KVO? 什么是KVO?KVO是Key-Value Observing的简称,翻译成中文就是键值观察.这是iOS支持的一种机制,用来做什么呢?我们在开发应用时经常需要进行通信,比如一个model ...
- 路径(keyPath)、键值编码(KVC)和键值观察(KVO)
键路径 在一个给定的实体中,同一个属性的所有值具有相同的数据类型. 键-值编码技术用于进行这样的查找—它是一种间接访问对象属性的机制. - 键路径是一个由用点作分隔符的键组成的字符串,用于指定一个连接 ...
- 09 (OC)* 键路径(keyPath)、键值编码(KVC)、键值观察(KVO)
键路径在一个给定的实体中,同一个属性的所有值具有相同的数据类型.键-值编码技术用于进行这样的查找—它是一种间接访问对象属性的机制. - 键路径是一个由用点作分隔符的键组成的字符串,用于指定一个连接在一 ...
- 深度理解Key-Value Observing 键值观察
前言 在上一阶段的开发过程中,我们大量使用了 KVO 机制,来确保页面信息的及时同步.也因此碰到了很多问题,促使我们去进一步学习 KVO 的相关机制,再到寻找更好的解决方案.鉴于 KVO 让人欲仙 ...
- [深入浅出Cocoa]详解键值观察(KVO)及其实现机理
一,前言 Objective-C 中的键(key)-值(value)观察(KVO)并不是什么新鲜事物,它来源于设计模式中的观察者模式,其基本思想就是: 一个目标对象管理所有依赖于它的观察者对象,并在它 ...
随机推荐
- Round B APAC Test 2017
https://code.google.com/codejam/contest/5254487 A. Sherlock and Parentheses Problem Sherlock and Wat ...
- ElasticSearch 插件配置
http://blog.sina.com.cn/s/blog_8f31e5b10101dsnq.html http://www.tuicool.com/articles/mMZfu2 http://b ...
- webscraping documentation — webscraping documentation
webscraping documentation - webscraping documentation webscraping documentation¶ Introduction Backgr ...
- 九款让WordPress成为赚钱利器的广告插件
Blog有了很不错的流量后,看到别人博客挂的广告挣$,是否也有挂广告的冲动,但是,修改wordpress模版去让人不厌其烦,布局.样式都的重新修改一下,为了不那么麻烦,笔者整理的几款wordpress ...
- lua协程并发下载简单测试
下载8个1m大小文件,测试五次分别耗时12.038s,10.316s,8.955s,11.275s,9.499s(lua代码实现如下) require "socket" --hos ...
- 1148 - Mad Counting(数学)
1148 - Mad Counting PDF (English) Statistics Forum Time Limit: 0.5 second(s) Memory Limit: 32 MB M ...
- ping的意思
Ping是测试网络联接状况以及信息包发送和接收状况非常有用的工具,是网络测试最常用的命令.Ping向目标主机(地址)发送一个回送请求数据包,要求目标主机收到请求后给予答复,从而判断网络的响应时间和本机 ...
- DevExpress ASP.NET 使用经验谈(3)-XPO对象的使用(使用指定数据连接)
首先,我们贴出上一节Users类XPO对象的保存代码,直接建立的XPO Session会话,因为没有与我们所期望的数据层建立绑定, 所以程序自动创建了一个Access数据库,作为默认数据库操作对象来使 ...
- eclipse hibernate插件在线安装
下面介绍下 关于在eclipse下如何在线安装插件 首先需要打开eclipse 点击 安装完成后,进入hibernate视图,在左侧窗口右键add configuration, 第一个name属性, ...
- 移除Strorefront站点footer上的Storefront Design By WooThemes字样
进入wp-content\themes\storefront\inc\structure\footer.php, 注释掉代码: if ( ! function_exists( 'storefront_ ...