Два кода не совпадают.
В Swift наблюдатель свойства вызывается всякий раз, когда устанавливается значение. Неважно, равно ли новое значение старому значению или нет. Таким образом, этот код выведет «Hello» ровно дважды:
class A {
var a: Int = 10 {
didSet {
print("Hello")
}
}
}
let a = A()
a.a = 10
a.a = 10
Чтобы преобразовать наблюдатель свойства в Objective-C, вам не нужно проверять, совпадает ли значение с прежним, просто выполните:
- (void)setBottomColor:(UIColor *)bottomColor
{
_bottomColor = bottomColor;
[self updateColors];
}
bottomColor
должно быть установлено на [UIColor gray]
в init
.