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
読み取り専用プロパティで読み書き可能なプロパティを上書きすることはできません。 OOPの重要なルールは、スーパークラスを期待するものすべてに常にサブクラスを渡すことができることです。スーパークラスを期待するものに対しては、プロパティは読み書き可能ですが、サブクラスを渡すとそうではありません。この例を元に戻した場合(読み書き可能なプロパティを読み書き可能なプロパティで上書きしようとすると)、読み書き可能なプロパティは計算されたものでなければならないが、オーバーライド)。 – Hamish