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在属性更改时执行某些操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |