利用KVO监听属性值的变化
来源:互联网 发布:php数据类型的意思 编辑:程序博客网 时间:2024/05/21 02:50
如一个person类有一个name的属性,我们利用KVO来监听name的值的变化.
首先我们在控制器中绑定一个监听器,(注意监听器在类的作用域的最后要移除掉)在viewDidLoad里的代码如下:
- (void)viewDidLoad {
[superviewDidLoad];
Person *p = [[Personalloc] init];
p.name =@"zs";
/*
作用:给对象绑定一个监听器(观察者)
- Observer 观察者
- KeyPath 要监听的属性
- options 选项(方法方法中拿到属性值)
*/
[p addObserver:selfforKeyPath:@"name"options:NSKeyValueObservingOptionNew |NSKeyValueObservingOptionOld context:nil];
p.name =@"ls";
p.name =@"ww";
// 移除监听
[p removeObserver:selfforKeyPath:@"name"];
}
/**
* 当监听的属性值发生改变在下面这个方法可以拿到name属性的变化之前和变化之后的值,(之所以能拿到这两个值是在添加监听器的时候options的值设置为NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld)
*
* @param keyPath 要改变的属性
* @param object 要改变的属性所属的对象
* @param change 改变的内容
* @param context 上下文
*/
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context{
NSLog(@"%@------%@------%@", keyPath, object, change);
}
- 利用KVO监听属性值的变化
- 利用KVO监听对象属性
- KVC/KVO 监听对象属性变化
- IPHONE 和 KVC/KVO 监听对象属性变化(例如:获取textView 的text的变化)
- IPHONE 和 KVC/KVO 监听对象属性变化(例如:获取textView 的text的变化)
- KVO: 一个类监听自己的属性(成员变量)的变化
- dom监听属性的变化
- KVO-对象属性值改变监听
- 【iOS】KVO方式监听数组的变化动态刷新tableView
- KVC 和 KVO 监听容器类(数组等)的变化
- iOS: 使用KVO监听控制器中数组的变化
- Angular中使用$watch监听object属性值的变化
- KVO监听UI控件的frame变化,kVO的简单使用,KVC的初步了解
- C#:监听类的属性变化
- javascript 监听对象属性的变化
- UIView 监听某一个属性的变化
- 用kvo监听TableViewCell图片大小变化
- swift中KVO简单使用,监听属性值改变
- poj 2594 (机器人覆盖所有顶点)
- C++ Primer Plus Chapter3
- 关于android系统对AndroidManifest文件的解析机制
- POJ2391 Ombrophobic Bovines(二分+拆点+最大流)
- URAL 1091 Tmutarakan Exams
- 利用KVO监听属性值的变化
- 匿名内部类精讲
- 面试笔试杂项积累-leetcode 291-300
- 隐藏iOS状态栏(iOS 9)
- USACO 1.5 pprime
- CentOS、Ubuntu、Debian三个linux比较异同
- 高速下载苹果官方文档(百度云盘)
- 腰椎间盘突出&腰椎间盘膨出的锻炼方法
- python-webpy和mongodb实现博客统计