Нет, они не полагаются на КВО.Чтобы доказать это, давайте посмотрим на код, который didSet и willSet являются синтаксическим сахаром для
var x = 0;
func setX(newX:Int):Int {
willSet()
x = newX
didSet()
}
Вместо того, чтобы писать все вышеперечисленные шаблоны для этого Swift, просто создается нечто похожее под капотом.Если это помогает думать о = как о простой функции над тем, что слева имеет сторону равенства.Если я вызываю = для свойства, это просто вызывает функцию set для этого свойства.Под капотом, когда я вызываю = свойство, Swift будет вызывать didSet и willSet, как описано выше.Точная реализация может выглядеть немного иначе, но приведенный выше фрагмент должен по крайней мере убедить вас в том, что нет необходимости реализовывать наблюдатели свойств с помощью KVO, и что, если вы покопаетесь глубоко в исходном коде для swift, вы обнаружите, что это didSet и willSet иСами вычисленные свойства являются просто синтаксическим сахаром для приведенного выше кода.