Property Observers
2018, Nov 01
Property Observers
willSet & didSet
class StepCounter {
var totalSteps: Int = 0 {
willSet(newSteps) { // (newSteps) 삭제하고 newValue로 사용가능
print("About to set totalSteps to \(newSteps)")
}
didSet { // oldValue 대신에 원하는 것으로 ()안에 대체 가능
if totalSteps > oldValue {
print("Added \(totalSteps - oldValue) Steps")
}
}
}
}
var steps = StepCounter()
steps.totalSteps = 3
steps.totalSteps = 400
willSet은 새로운 값이 들어오면 캐치해서 명령을 실행한다. didSet은 바로 이전 값을 남겨서 사용한다… 이제야 알다니…. ;ㅁ;