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))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容