当前位置: 移动技术网 > IT编程>移动开发>IOS > KVO-键值监听

KVO-键值监听

2019年09月01日  | 移动技术网IT编程  | 我要评论

死神漫画400,韩国明星八卦新闻,芦溪教研网

键值监听,就是可以监听对象某个属性值的变化;

首先,在工程中,新建一个person的类

@interface person : nsobject

@property (nonatomic, copy) nsstring *name;

@end

在viewcontroller中引入头文件“person”,开始测试kvo的使用

- (void)viewdidload {
    [super viewdidload];
   
    person *person = [[person alloc] init];
    person.name = @"珠珠";
    [person addobserver:self forkeypath:@"name" options:nskeyvalueobservingoptionnew | nskeyvalueobservingoptionold context:@"testkvo"];
    
    person.name = @"小雅";
    [person removeobserver:self forkeypath:@"name"];
    
}

- (void)observevalueforkeypath:(nsstring *)keypath ofobject:(id)object change:(nsdictionary<nskeyvaluechangekey,id> *)change context:(void *)context {
    nslog(@"keypaht=%@, object=%@, change=%@, context=%@", keypath,object, change, context);
    //nskeyvaluechangeoldkey  可以用"old"来代替,但是获取的话,如果系统修改old为"old"的话,那会获取不到,所以建议用nskeyvaluechangeoldkey
    nslog(@"获取被修改前的值=%@", change[nskeyvaluechangeoldkey]);
    //nskeyvaluechangenewkey  可以用"new"来代替,但是获取的话,如果系统修改new为"new"的话,那会获取不到,所以建议用nskeyvaluechangenewkey
    nslog(@"获取修改后的值=%@", change[nskeyvaluechangenewkey]);
}

运行程序,得出来的值如下:

 

 

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网