KVO和通知机制
来源:互联网 发布:linux squid 地址 编辑:程序博客网 时间:2024/05/18 03:45
KVO
全称: Key Value Observing 键值监听
当指定对象的属性被修改后。则该对象就会收到通知,也就是每次指定的被观察的对象的属性,被修改之后,kvo就会自动的通 知响应的观察者
//第一步:注册
/**
* 1.注册被监听对象,也就是model
2.addObserver 监听对象
3.forKeyPath 被监听对象的属性
4.options 什么时候出发,NSKeyValueObservingOptionNew当值有新变化的时候回调监听方法
//self.model 是继承NSObject的model对象
[self.modeladdObserver:selfforKeyPath:@"money"options:NSKeyValueObservingOptionNewcontext:nil];
/**
* 第二步:实现监听回调方法
*
*
*/
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context{
NSLog(@"keyPath=%@,object=%@,change%@,context=%@",keyPath,object,change,context);
// self.moneylabel.text=[self.model valueForKey:@"money"];
if ([keyPathisEqualToString:@"money"]) {
self.moneylabel.text=change[@"new"];
}
}
/**
* 第三步L:移除
*/
- (void)dealloc{
//ARC不能写 [super dealloc];
[self.modelremoveObserver:selfforKeyPath:@"money"];
}
- (IBAction)lookBtn:(id)sender {
NSString *str=[NSStringstringWithFormat:@"余额:%ldRMB",arc4random() % 10000000000];
[self.modelsetValue:strforKey:@"money"];
}
#pragma mark ===== 通知
//1.注册通知
//通知是一对多的关系,发送一个通知,可以有多个观察者【,
//,,(一定要先注册,在发送通知)
//1.添加观察者(接受者一定要存在)
//2.收到通知之后要执行的方法
//3.通知的名字
//4.传递参数为nil
//
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(changeLabel:)name:@"zhang"object:nil];
- (void)dealloc{
[[NSNotificationCenterdefaultCenter]removeObserver:self];
}
收到通知的方法
-(void)changeLabel:(NSNotification *)notification{
self.mango.text=notification.userInfo[@"input"];
}
- (IBAction)btn:(id)sender {
//2发送通知
[[NSNotificationCenterdefaultCenter]postNotificationName:@"zhang"object:niluserInfo:@{@"input":self.textfiled.text}];
[self.navigationControllerpopToRootViewControllerAnimated:YES];
}
- KVO和通知机制
- 通知机制和KVO机制
- 代理 kvo和通知
- KVC 和KVO机制
- 观察者模式之通知机制与KVO机制
- ios_obj-c KVC,谓词,KVO和通知
- 关于代理、通知和KVO区别
- 通知和kvo以及代理的区别
- iOS 通知和kvo中的线程问题
- iOS通知和KVO的区别和用法
- kvo机制
- KVO机制
- KVO 机制
- OC的KVC和KVO机制
- iOS消息传递机制---KVC和KVO
- 8观察者模式( kvo基于键值 和Notification通知)
- iOS NSNotification通知和KVC KVO 的一些用法
- 观察者模式( kvo基于键值 和Notification通知)
- 在O(n)的时间复杂度内找出数组中出现次数超过了一半的数
- Ajax-入门
- Uboot启动分析笔记-----Stage1(start.S与lowlevel_init.S详解)
- java学习-3.操作符
- Spring Resource 资源
- KVO和通知机制
- 练习二 1008 猜数字问题
- 京东2016实习笔试糖果因子最大组合
- bzoj 1706 奶牛接力
- java学习-4.控制执行流程
- gradle学习笔记(二) Groovy基础
- 【USACO题库】2.4.2 Overfencing穿越栅栏
- Java线程学习
- B-树,B+树学习总结