KVO与UIKit的可靠性如何
重要提示:并非所有的课程都符合KVO标准。 您可以按照“KVO合规性”中所述的步骤确保您自己的课程符合KVO标准。通常,苹果提供的框架中的属性仅在符合KVO标准时才具有KVO合规性。
这句话让我感到困惑。 我们不能使用KVO作为UIKit对象吗? 我不记得有任何财产被logging为符合KVO。 尽pipe如此,我可以使用KVO许多属性。 这是否意味着我不能依靠它?
任何深入了解,将不胜感激。
UIKit大多不符合KVO标准。 这主要是因为UIView
作为CALayer
的高级包装,所以当你例如。 改变UIView
的frame
属性,它会改变图层frame
但离开例如。 UIView
的bounds
属性保持不变,所以view.bounds
path不会触发观察者,因为它永远不会改变。 这导致非KVO合规性。
只有当这个属性被标记为符合KVO标准时才可以依靠它,否则在某些奇怪的情况下它将不能工作或者中断。
- 键值在Swift中观察不显示数组中的插入和删除
- 在Swift的计算属性上的KVO
- 什么时候应该从closures的ViewController类中观察持续的Model类调用removeObserver:forKeyPath?
- 观察NSArray中NSDictionary的值更改
- 这个observeValueForKeyPath有什么问题:ofObject:change:context:implementation?
- 了解iOS中的KVO
- UITextField initWithFrame上的KVO崩溃
- 一对多的KVO,但传递到observeValueForKeyPath的NSNull对象
- mergeChangesFromContextDidSaveNotification之后的KVO通知