KVO

属性监听器

  • 谁需要被监听,就调用addObserver:(被谁监听) forKeyPath:(监听哪个属性) options:NSKeyValueObservingOptionNew(枚举,需要监听新值还是旧值) context:nil];

  • 然后监听者在自己的类里面实现一个监听方法

    • (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context

    • change传入的是一个字典,里面存了当时需要监听的属性新值或旧值或者新旧值

  • 每次监听必须要的销毁方法中移出监听否则会出现内存问题

  • 自定义提示宏

#define keyPath(objc,keyPath) @(((void)objc.keyPath,#keyPath))

你可能感兴趣的:(KVO)