프로퍼티 옵저버는 프로퍼티의 값이 변경되는지 관찰하고 응답합니다.
프로퍼티 옵저버는 현재 값과 새로운 값이 같더라도 값이 변경될 때 호출됩니다.
다음과 같은곳에 추가 할 수 있습니다.
프로퍼티에 옵저버를 정의하는 방법은 2가지가 있으며 둘다 정의할 수도 있습니다.
값이 저장되기 직전에 호출됩니다.
새로운 값이 저장되자마자 호출됩니다.
class StepCounter {
var totalSteps: Int = 0 {
willSet(newTotalSteps) {
print("About to set totalSteps to \(newTotalSteps)")
}
didSet {
if totalSteps > oldValue {
print("Added \(totalSteps - oldValue) steps")
}
}
}
}
let stepCounter = StepCounter()
stepCounter.totalSteps = 200
// About to set totalSteps to 200
// Added 200 steps
stepCounter.totalSteps = 360
// About to set totalSteps to 360
// Added 160 steps
stepCounter.totalSteps = 896
// About to set totalSteps to 896
// Added 536 steps