Property Observers(프로퍼티 옵저버)

장수빈·2024년 6월 11일

Swift문법

목록 보기
9/11

프로퍼티 옵저버는 프로퍼티의 값이 변경되는지 관찰하고 응답합니다.
프로퍼티 옵저버는 현재 값과 새로운 값이 같더라도 값이 변경될 때 호출됩니다.

다음과 같은곳에 추가 할 수 있습니다.

  • Stored properties that you define
  • Stored properties that you inherit
  • Computed properties that you inherit

프로퍼티에 옵저버를 정의하는 방법은 2가지가 있으며 둘다 정의할 수도 있습니다.

willSet

값이 저장되기 직전에 호출됩니다.

  • 상수 파라미터로 새 값이 전달됩니다. 따로 파라미터 명을 작성하지 않으면
    newValue라는 기본 파라미터 명을 가집니다.

didSet

새로운 값이 저장되자마자 호출됩니다.

  • 상수 파라미터로 예전 값이 전달됩니다. 따로 파라미터 명을 작성하지 않으면
    oldValue라는 기본 파라미터 명을 가집니다.

예제

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
profile
iOS 공부 이모저모 낙서장

0개의 댓글