加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – 什么时候调用observeValueForKeyPath?

发布时间:2020-12-16 07:13:03 所属栏目:百科 来源:网络整理
导读:是否在更改属性(意味着属性设置器已从调用堆栈中弹出)或属性设置器正在执行时调用它? 斯威夫特有非常方便的“财产观察员”. Obj-C对KVO有类似的东西吗? 解决方法 这取决于添加观察者时使用的选项.如果观察者添加了NSKeyValueObservingOptionPrior,则在更改
是否在更改属性(意味着属性设置器已从调用堆栈中弹出)或属性设置器正在执行时调用它?

斯威夫特有非常方便的“财产观察员”. Obj-C对KVO有类似的东西吗?

解决方法

这取决于添加观察者时使用的选项.如果观察者添加了NSKeyValueObservingOptionPrior,则在更改属性之前和之后都会调用-observeValueForKeyPath:….或者,更准确地说,它在-willChange期间和-didChange …方法期间都被调用.

如果未使用NSKeyValueObservingOptionPrior,则仅在更改属性后调用-observeValueForKeyPath:…. (在-didChange …方法期间.)

Swift财产观察员与KVO并不十分相似.相反,它们更像是自己实现属性设置器(或在子类中覆盖它),并在实际更改支持该属性的实例变量之前和/或之后执行某些操作(或调用到超级).

我建议不要编写一个在自己的属性上使用KVO来响应更改的类.相反,它应该实现setter在属性更改时执行某些操作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读