Подтвердить что ты не робот

Как переопределить сеттер в Swift

Суперкласс:

class MySuperView : UIView{
    var aProperty ;
}

Наследование подкласса суперкласса:

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

Я хочу переопределить метод setterter/getter для суперкласса,

как переопределить этот метод в Swift? Пожалуйста, помогите мне, спасибо.

4b9b3361

Ответ 1

Что вы хотите делать с вашим настраиваемым сетевым устройством? Если вы хотите, чтобы класс делал что-то до/после установки значения, вы можете использовать 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

Выход консоли:

WillSet aVar до 5 от 0

hasSet aVar to 5 из 0

Если, однако, вы хотите полностью изменить способ взаимодействия сеттера с суперклассом:

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)

Выход консоли:

0

Установил бы aVar на 5 из 0

0