UIKit в основном НЕ соответствует KVO.Это в основном потому, что UIView
действует как высокоуровневая оболочка для CALayer
, например, когда вы, например.измените frame
свойство UIView
, это изменит слои frame
, но оставьте, например,.свойство bounds
для UIView
не затронуто, поэтому ни один наблюдатель не будет запущен для пути view.bounds
, потому что он никогда не изменится.И это приводит к несоответствию KVO.
Только если свойство помечено как KVO-совместимое, вы можете положиться на это, иначе оно не будет работать или сломаться в некоторых странных случаях.