iOS之KVO
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了iOS之KVO,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1527字,纯文字阅读大概需要3分钟。
内容图文
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
先创建一个person类并定义name和sex属性,当person的name或sex属性发生变化时会执行一个action<br><br>
/**
* KVO --- Key Value Observe(键值观察者)
* KVO 是一种设计模式,属于观察者设计模式
* 观察者设计模式涉及到以下内容:观察者、被观察者、观察的事项
* 工作原理:观察者 观察 被观察者 指定的属性是否发生变化,一旦发生变化,就执行一个action
* KVO 是基于 KVC 的,通过keyPath指定需要观察的属性
*/
_person = [[Person alloc] init];
// 控制器观察model的变化
// self作为观察者 观察person的name属性的变化
[_person addObserver:
self
forKeyPath:@
"name"
options:(
NSKeyValueObservingOptionNew
|
NSKeyValueObservingOptionOld
) context:Nil];
_person.name = @
"zhangsan"
;
[_person setValue:@
"lisi"
forKey:@
"name"
];
[_person addObserver:
self
forKeyPath:@
"sex"
options:(
NSKeyValueObservingOptionNew
|
NSKeyValueObservingOptionOld
) context:Nil];
_person.sex = @
"nan"
;
/**
* 总结KVO的四个步骤
* 1 [被观察者 addObserver:观察者 forKeyPath:被观察的属性 options:观察设置 context:参数]
* 2 观察者实现 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
* 3 被观察者属性发生变化
* 4 移除观察者
*/
|
当person的被观察属性发生变化时会执行下面的方法
1
2
3
4
5
6
7
8
9
10
11
12
|
/**
* 当被观察者被观察的属性发生变化时 执行此方法
*
* @param keyPath 被观察的属性
* @param object 被观察者
* @param change 变化
* @param context ?????????? 还不理解
*/
- (
void
)observeValueForKeyPath:(
NSString
*)keyPath ofObject:(
id
)object change:(
NSDictionary
*)change context:(
void
*)context
{
NSLog
(@
"\nkeyPaht%@ \nobject%@ \nchange%@ \ncontext%@"
, keyPath, object, change, context);
}
|
原文:http://www.cnblogs.com/NatureZhang/p/3718154.html
内容总结
以上是互联网集市为您收集整理的iOS之KVO全部内容,希望文章能够帮你解决iOS之KVO所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】