iOS KVO(键-值观察) 的使用总结
来源:互联网 发布:中国网络为什么多喷子 编辑:程序博客网 时间:2024/06/08 15:27
KVO(键-值观察)
// 1.键-值观察
// 2.它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。
// 3.符合KVC(Key-ValuedCoding)机制的对象才可以使用KVO
// 4.实现过程
// ①注册,指定被观察者
// ②实现回调方法
// ③移除观察
// 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"
];
}
0 0
- iOS KVO(键-值观察) 的使用总结
- 14.键-值观察(KVO)
- iOS KVO观察数组
- iOS KVO观察数组
- iOS KVO 键值观察
- 浅析键值观察(KVO)的使用技巧
- 键-值观察(KVO模式)
- KVO键-值观察编程指南
- KVO - 观察自定义属性值
- iOS中KVO的使用
- ios KVC KVO的使用
- ios KVO的简单使用
- iOS开发-KVO观察容器类
- iOS键值观察KVO实例详解
- 关于KVO的使用总结
- OC视频笔记-[键-值观察KVO+谓词]
- 【ios】iOS:KVO的概述与使用
- iphone ios 中监听、KVO、观察和通知的五种方法
- JS动态给对象添加属性和值
- [cocos2dx笔记014]一个用于cocos2dx的对象智能指针模板
- java内存管理
- Java性能优化(详解)
- excel导出
- iOS KVO(键-值观察) 的使用总结
- 黑马程序员——异常处理
- jsp标签 <meta>
- 数据库系统原理(一)
- Burning Midnight Oil+二分答案+codeforces
- hd 2018 母牛的故事
- QT常用例程收集整理(易集成至主工程)
- 编辑文章 - 博客频道 - CSDN.NET
- mysql OUTFILE 与 LOAD DATA