美文网首页
Swift3.0 中KVO(监听)的使用

Swift3.0 中KVO(监听)的使用

作者: BrumeLoong | 来源:发表于2017-11-06 00:26 被阅读0次

iOS的KVO即是key-value observing。

1.建立在KVC之上的的机制。

2.主要功能是检测对象属性的变化。

3.这是一个完善的机制,不需要用户自己设计复杂的视察者模式。

4.对需要视察的属性要在前面加上dynamic关键字。

KVO的使用过程中需要注意的问题

1,在写swift的KVO的过程中,其不能监听基本数据类型的属性,若想监听需将其改成NSNumber类型,或其它类型,否则监听的代理方法不走。

2,在写swift的KVO的过程中,被监听的属性必须用“dynamic”修饰,否则监听的代理方法不走。

3,在写swift的KVO的过程中,要保证监听者和被监听者同时存在(考虑到其生命周期)。

4,在写swift的KVO的过程中,要确保最后移除观察者,防止内存泄

添加监听方法

view1?.addObserver(self, forKeyPath: "num", options: .new, context: &mycontext)

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {

print(change,keyPath,context)

if context == &mycontext {

print("yes")

if let newValue = change![NSKeyValueChangeKey.newKey]{

print("newValue",newValue)

}

}else{

super.observeValue(forKeyPath: keyPath, of: object, change: change, context: context)

}

}

移除监听

override func viewDidDisappear(_ animated: Bool) {

super.viewDidDisappear(animated);

//移除监听

//        self.removeObserver(self, forKeyPath: "age", context: &myContext);

//        self.removeObserver(self, forKeyPath: "age")

self.removeObserver(self, forKeyPath: "age", context: &mycontext)

}

相关文章

  • Swift3.0 中KVO(监听)的使用

    iOS的KVO即是key-value observing。 1.建立在KVC之上的的机制。 2.主要功能是检测对象...

  • KVO如何才能直接监听到数组的变化

    转自关于使用KVO监听数组的问题 首先,数组不能直接使用KVO使用监听。当我们想要使用KVO监听数组的状态时改变然...

  • OC底层原理学习笔记(二)- KVO、KVC的本质

    一、KVO 1、KVO实现属性监听的原理KVO俗称“键值监听”,可以用于监听某个对象属性值的改变未使用KVO监听的...

  • KVO使用进阶和底层原理

    KVO使用 KVO(key-value-observing)键值监听常用来监听特定对象中某属性值的变化,日常开发中...

  • iOS重学之KVO详解

    KVO的基本使用 基本使用 KVO:Key Value Observing(键值监听),用来监听某个对象属性值的改...

  • KVO 相关

    1 . KVO 的基本使用kvo "键值监听", 全称"Key-Value Observing" ,监听对象属性...

  • KVO使用及实现原理

    KVO使用及实现原理 KVO使用 对属性进行监听 对属性的属性进行监听 容器监听 触发(手动触发,kvc赋值) 添...

  • 监听音量键的两种方法

    1、使用KVO监听属性outputVolume 首先,注册监听 在监听的回调中判断是否是我们监听的属性,所有使用K...

  • iOS KVO

    kvo:key-value-observing:键值监听,可以监听某个对象属性的值 前言 使用(kvo 监听foo...

  • 自定义KVO,自动释放,监听多个属性

    自定义的 KVO,支持多属性监听,支持自动释放。 使用系统 KVO 监听属性 先来回顾下系统 KVO 是如何使用的...

网友评论

      本文标题:Swift3.0 中KVO(监听)的使用

      本文链接:https://www.haomeiwen.com/subject/dukkmxtx.html