您的位置:首页 > 移动开发 > IOS开发

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=@"李四";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios KVO