首页 > 代码库 > IOS KVO的实现原理
IOS KVO的实现原理
#import "HMViewController.h" #import "HMPerson.h" @interface HMViewController () @property (nonatomic, strong) HMPerson *p; @end @implementation HMViewController - (void)viewDidLoad { [super viewDidLoad]; // 运行时机制:runtime HMPerson *p = [[HMPerson alloc] init]; p.age = 20; [p addObserver:self forKeyPath:@"age" options:NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew context:nil]; p.age = 30; self.p = p; } - (void)dealloc { [self.p removeObserver:self forKeyPath:@"age"]; } /** * 当监控的某个属性的值改变了就会调用 * * @param keyPath 属性名(哪个属性改了?) * @param object 哪个对象的属性被改了? * @param change 属性的修改情况(属性原来的值、属性最新的值) * @param context void * == id */ - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { NSLog(@"%@对象的%@属性改变了:%@", object, keyPath, change); } @end
IOS KVO的实现原理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。