with stored protocol property constructors cannot swift override setter getter

stored - Cómo anular setter en Swift



swift 4 protocol (1)

¿Qué quieres hacer con tu configurador personalizado? Si desea que la clase haga algo antes / después de que se establezca el valor, puede usar willSet / didSet :

class TheSuperClass { var aVar = 0 } class SubClass: TheSuperClass { override var aVar: Int { willSet { print("WillSet aVar to /(newValue) from /(aVar)") } didSet { print("didSet aVar to /(aVar) from /(oldValue)") } } } let aSub = SubClass() aSub.aVar = 5

Salida de consola:

WillSet aVar a 5 de 0

didSet aVar a 5 de 0

Sin embargo, si desea cambiar completamente la forma en que el definidor interactúa con la superclase:

class SecondSubClass: TheSuperClass { override var aVar: Int { get { return super.aVar } set { print("Would have set aVar to /(newValue) from /(aVar)") } } } let secondSub = SecondSubClass() print(secondSub.aVar) secondSub.aVar = 5 print(secondSub.aVar)

Salida de consola:

0

Habría puesto aVar en 5 desde 0

0

Una Superclase:

class MySuperView : UIView{ var aProperty ; }

Una herencia de subclase de la super clase:

class Subclass : MySuperClass{ // I want to override the aProperty''s setter/getter method }

Quiero anular el método setter / getter de la propiedad de la superclase,

¿Cómo anular este método en Swift? Por favor ayúdame, gracias.