死神漫画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]); }
运行程序,得出来的值如下:
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
iOS 使用UITextField自定义搜索框 实现用户输入完之后“实时搜索”功能
网友评论