KVO(Key-Value observing)介绍
KVO机制允许一个对象的指定属性的值改变时可以通知其它监听者。
这种机制在MVC程序构架中非常有用:
控制器监听模型的属性。如果控制器监听到模型中的属性变化了,那么控制器就通知视图更新显示。
一个模型对象也可以是其它模型对象的监听者,甚至一个对象也可以监听它自己的属性。
一个对象的属性可以被多个对象监听,当属性的值改变了,该属性所有的监听者都会收到通知。
使用KVO机制可以很方便的实现观察者模式。
使用KVO:
1. 假设如下情形:
@interface BankObject : NSObject {
}
@property(assign) NSIntger accountBalance;
@end
@interface PersonObject : NSObject {
}
当 accountBalance 的值发生变化时,一个 PersonObject 希然收到通知。
2. PersonObject 对象注册为 BankObject 对象的 accountBalance 属性的监听者。
[bankInstance addObserver:personInstance forKeyPath:@"accountBalance" options:NSKeyValueObservingOptionNew context:NULL];
3. 在 PersonObject 中响应通知
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if ([keyPath isEqualToString:@"accountBalance"]) {
// TODO: Add your code here...
}
}
当 BankObject 的 accountBalance 的值变化时, observeValueForKeyPath:ofObject:change:context:方法会自动被调用。
KVO(Key-Value observing)介绍相关推荐
- ON DUPLICATE key update的介绍与使用
点赞再看,养成习惯,下面介绍ON DUPLICATE key update的使用. 目录 一.主键索引.唯一索引和普通索引的关系 二.实战操作 1.ON DUPLICATE key update使用介 ...
- iOS中有两种支持机制:Notification和KVO(Key-Value Observing)
KVO是iOS中的一个核心概念,简单理解就是:关注Model某个数据(Key)的对象可以注册为监听器,一旦Model某个Key的Value发生变化,就会广播给所有的监听器(http://blog.ch ...
- jsonobject修改key的值_JSON字符串操作移除空串更改key/value的介绍
对于JSON字符串的操作.移除键值.添加属性. //删除JSON对象value值 var json=[.....]; delete(json['key']); 或者 delete(json.key); ...
- 【iOS 开发】Objective - C 面向对象 - 方法 | 成员变量 | 隐藏封装 | KVC | KVO | 初始化 | 多态
一. Objective-C 方法详解 1. 方法属性 (1) OC 方法传参机制 Object-C 方法传参机制 : OC 中得参数传递都是值传递, 传入参数的是参数的副本; -- 基本类型 (值传 ...
- iOS开发入门——基础篇一
文章目录 1. iOS应用生命周期 1.1 应用程序的架构 1.2 iOS应用的5种状态: 1.2.1做一些操作对应的生命周期调用的顺序 1.2.2全面的生命周期执行流程图 1.3 Main函数入口 ...
- 深度解析~iOS应用程序~生命周期
摘要:iOS应用程序一般都是由自己编写的代码和系统框架组成,系统框架提供一些基本infrastructure给App来运行,而开发者则自己编写代码定制App的外观和行为,了解iOS Infrastru ...
- IOSday04 UIButton使用
UIButton UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; 千万不要这样写: btn.titleLabel.text ...
- iOS KVO和KVC介绍
iOS KVO和KVC介绍 KVO和KVC都是基于对NSObject的扩展来实现的,所有继承于NSObject的子类都能使用KVO和KVC. 用来测试的model: @interface User : ...
- OC_KVC与KVO简单介绍
KVC KVC概述 KVC 即 Key-value coding 键值编码,是指iOS的开发中,可以允许开发者通过Key名直接访问对象的属性,或者给对象的属性赋值. KVC案例 @interface ...
最新文章
- angularJs在线API文档
- 第十六届全国大学生智能车竞赛百度智慧交通竞赛成绩
- 【BZOJ-3156】防御准备 DP + 斜率优化
- 实验-网页动画(js版)
- 男女薪酬差异扩大 2018年女性薪酬不及男性8成
- 在windows下运行spark
- Eclipse中tomcat的简单配置
- 秋式开源团队,欢迎您的加入!
- 人脸识别测试维度定义(欢迎大家拍砖并补充谢谢!)
- c++开发工具下载地址
- Java区块链视频教程百度云_区块链开发入门到精通视频教程
- java项目超市购物管理系统
- LTE-V2X车联网技术、标准、应用
- Win10自动修复失败,无法正常启动
- Defender绝密档案:惊现中本聪?
- 百度云盘 破解上传限制4G(利用种子)
- web学习第七天:来自倔驴的怒吼——生理年龄不代表技术年龄
- 手风琴几排簧好_手风琴三排簧和四排簧的区别
- 【Docker】二 Docker安装
- 【厚积薄发系列】Python项目总结2—Python的闭包
热门文章
- [IPhone] 第一个iphone游戏(Bingo Fight)上市了
- 拜占庭将军问题(一)—— 引言与结论
- 一起学画图:散点图+边缘分布统计图形-密度图-直方图-箱型图-小提琴图
- java代码默认保存在哪里,java创建程序时程序保存在什么地方
- 如何不解锁BL刷入Android 12/安卓程序员预览版或者刷回Android 11
- 武汉第二中学2021年高考成绩查询,武汉市第二中学录取分数线及成绩2020
- GitHub云扫描器
- 乐学偶得python视频_怎么用历史估计法,ERP与CAPM模型计算股票资产的内在价值
- 【Linux】saltstack的使用详解 超详细
- 一致性hash环原理