프로퍼티가 변경될 때마다 자동실행되는 코드, 속성감시자

  • 문법적 제약 -> 가변성이 있는 변수 저장 속성(var) 에서만 사용 가능하다.
  • willSet블록과 didSet블록
    Willset은 속성에 값이 저장 되기 직전에 호출 -> 새로 저장된 값은 파라미터로 전달 -> 파라미터 이름 생략시 newValue
    didSet은 값이 저장된 직후에 호출 -> 속성에 새로운 값이 저장되어 있음 -> 이전 값이 파라미터로 저장되어 있음 oldValue
class Size {
    var width = 0.0 {
        willSet {
            print(width, "=>", newValue)
        }
        didSet{
            print(width, "=>", oldValue )
        }
    }
}

let s = Size()
s.width = 123

출력값
0.0 => 123.0
123.0 => 0.0

좋은 웹페이지 즐겨찾기