IOS观察者模式之KVO代码
2015-03-10 12:25
453 查看
IOS观察者模式之KVO代码
首先要对进行观察的对象进行注册
实现回调方法
对象释放的时候要移除观察者
1、准备要观察的对象
@interface Example :
NSObject
@property (nonatomic,
strong) NSString *name;
@property (nonatomic,
strong) NSString *mobile;
@end
2、在这个对象实现回调方法(如果在这里观察属性改变的话,注意如果在其他的地方观察,要记得移除观察者)
#import "Example.h"
@implementation Example
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
if ([keyPath isEqualToString:@"name"]) {
NSLog(@"keyPath:%@\n object:%@\n change:%@\n context:%@",keyPath,object,change,context);
}
}
-(void)dealloc{
[self removeObserver:self forKeyPath:@"name"];
}
@end
3、使用
- (void)viewDidLoad {
[super
viewDidLoad];
Example *object=[[Example
alloc]init];
//观察name属性 ,new是改变的新值,old是旧值
[object addObserver:object
forKeyPath:@"name"
options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld
context:@"它的name属性改变了"];
object.name=@"张三";
object.name=@"李四";
}
首先要对进行观察的对象进行注册
实现回调方法
对象释放的时候要移除观察者
1、准备要观察的对象
@interface Example :
NSObject
@property (nonatomic,
strong) NSString *name;
@property (nonatomic,
strong) NSString *mobile;
@end
2、在这个对象实现回调方法(如果在这里观察属性改变的话,注意如果在其他的地方观察,要记得移除观察者)
#import "Example.h"
@implementation Example
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
if ([keyPath isEqualToString:@"name"]) {
NSLog(@"keyPath:%@\n object:%@\n change:%@\n context:%@",keyPath,object,change,context);
}
}
-(void)dealloc{
[self removeObserver:self forKeyPath:@"name"];
}
@end
3、使用
- (void)viewDidLoad {
[super
viewDidLoad];
Example *object=[[Example
alloc]init];
//观察name属性 ,new是改变的新值,old是旧值
[object addObserver:object
forKeyPath:@"name"
options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld
context:@"它的name属性改变了"];
object.name=@"张三";
object.name=@"李四";
}
相关文章推荐
- IOS观察者模式_NSNotification,KVO,Delegate的使用理解
- UIday1702:KVO 观察者设计模式 代码实现 常用
- iOS的观察者模式之:KVC&KVO
- iOS---观察者模式之--->KVO
- iOS 观察者模式(KVO)的简单使用
- ios中观察者模式与通知机制,及KVO
- [ios基础] KVO观察者模式,实用分析
- iOS KVO 观察者模式实现方式
- UIday1701:KVO观察者设计模式 代码
- IOS 中的KVO模式 观察者模式
- iOS---KVO(Key Value Observing) 观察者模式之解析与应用
- iOS开发笔记之基于键值的观察者模式(KVO)
- iOS 中的观察者模式, KVO, 通知
- iOS 观察者模式(KVC&KVO、通知)
- ios 观察者模式(Notification、KVO)
- IOS 设计模式之三:(适配器模式 观察者 KVO)
- iOS--基于键值的观察者模式(KVO)
- IOS 中的KVO模式 观察者模式
- iOS设计模式(01):观察者
- 《转》 IOS 观察者模式