KVO

KVO系统由NSObject实现,所有NS类均可直接使用监听。

注册监听器:

由于所有NSObject对象均实现KVO系统,因此可直接在任何对象上调用函数,并传入self作为observer对象。

addObserver(observer: NSObject, forKeyPath keyPath: String, options: NSKeyValueObservingOptions, context: UnsafeMutablePointer<Void>)
移除监听器:

目标对象未曾注册为监听器时,调用该移除函数会导致error错误。
另外,必须确保在注册监听器时所用对象在被销毁前调用移除函数。

removeObserver(observer: NSObject, forKeyPath keyPath: String)
监听:
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
    if object is 目标Class && keyPath == 监听中的keyPath {
    
           // 类型转换
           if let statusValue = change?[NSKeyValueChangeNewKey] as? Int {
               if let status = 目标枚举Class(rawValue: statusValue){
                   switch status {
                   case 目标枚举Class.枚举量A:
                       break
                   ...
}
参考:
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 上半年有段时间做了一个项目,项目中聊天界面用到了音频播放,涉及到进度条,当时做android时候处理的不太好,由于...
    DaZenD阅读 8,134评论 0 26
  • 概述 KVO全称Key-Value-Observing,也叫键值监听,是一种观察者设计模式.提供了一种机制,当指定...
    Mccc_阅读 3,880评论 1 6
  • FBKVOController是一个简单易用的键值观察框架,KVOController 对于 Cocoa 中 KV...
    我有小尾巴快看阅读 5,195评论 0 0
  • KVO 作为 iOS 中一种强大并且有效的机制,为 iOS 开发者们提供了很多的便利;我们可以使用 KVO 来检测...
    JzRo阅读 4,571评论 0 2
  • 1.KVC 关于 KVC 和 KVO ,我之前的总结文章有写过,但是趋于表面,没有探究其内部真正的实现原理和进阶用...
    Liberalism阅读 4,845评论 0 5

友情链接更多精彩内容