class Base: UIViewController {
var rightButtonColor: UIColor = UIColor.blueColor()
}
class SecondViewController: Base {
override var rightButtonColor: UIColor {
return UIColor.redColor()
}
}
Я получаю сообщение об ошибке:Как я могу переопределить это свойство Swift?
Getter for 'rightButtonColor' with Objective-C selector 'rightButtonColor' conflicts with getter for 'rightButtonColor' from superclass 'Base' with the same Objective-C selector
Вы просто не можете переопределить свойство чтения-записи с использованием свойства только для чтения. Ключевым правилом ООП является то, что вы всегда можете передать подкласс всему, что ожидает его суперкласс. К тому, что ожидает суперкласс, ваше свойство - чтение-запись - но это не значит, что вы проходите в подклассе. Обратите внимание: если вы отмените этот пример (пытаясь переопределить свойство только для чтения с помощью свойства read-write), оно будет работать (хотя ваше свойство read-write должно быть рассчитано, поскольку вы не можете ввести хранилище в переопределить). – Hamish