본문 바로가기
swift

Swift 프로퍼티 옵저버

by 승환파크 2024. 6. 12.

프로퍼티 옵저버

프로퍼티 옵저버란 해당 프로퍼티를 관찰하는것 이라고 할 수 있다. 프로퍼티 옵저버는 해당 프로퍼티를 관찰하면서 변경 사항이 발생할 때 실행된다.

프로퍼티 옵저버를 사용하기 위해서는 변수에 프로퍼티 옵저버를 정의하여 프로퍼티 값의 변경 사항을 모니터링 하고, 미리 구현한 코드로 이에 대응하는 방식으로 사용된다.

프로퍼티 옵저버는 willSet 과 didSet 이 있는데 주로 willSet 보다는 didSet이 사용되는 편이다. 그리고 willSet 과 didSet 을 둘다 작성했을 경우, willSet이 우선적으로 실행된다.

프로퍼티 옵저버는 저장프로퍼티와 연산프로퍼티 두가지에만 추가할 수 있다.

 

didSet

didSet은 새로운 값이 저장되면 그 즉시 호출된다. 그리고 이전 프로퍼티의 값이 oldValue로 제공이 된다.

 

willSet

willSet은 새로운 값이 저장되기 직전에 호출된다. 그리고 didSet 과는 다르게 새로운 프로퍼티의 값이 newValue로 제공된다.

 

사용 방법

var myProperty: Int = 20 {
    didSet(oldValue) {
        // myProperty의 값이 변경된 직후에 호출된다. oldValue는 변경 전 myProperty의 값이 들어간다.
    }
    willSet(newValue) {
        // myProperty의 값이 변경되기 직전에 호출된다. newValue는 변경 될 새로운 값이 들어간다.
    }
}

 

예제 코드

var name: String = "Unknown" {
    willSet {
        print("현재 이름 = \(name), 바뀔 이름 = \(newValue)")
    }
    didSet {
        print("현재 이름 = \(name), 바뀌기 전의 이름 = \(oldValue)")
    }
}

name = "Peter"
// 결과값
// 현재 이름 = Unknown, 바뀔 이름 = Peter
// 현재 이름 = Peter, 바뀌기 전의 이름 = Unknown

'swift' 카테고리의 다른 글

swift 프로토콜  (0) 2024.06.14
swift 접근 제한자  (0) 2024.06.13
Swift 카카오 로그인  (1) 2024.05.10
스위프트 IBAction 및 IBOutlet  (1) 2024.04.19
스위프트 Interface Builder 와 UI 구성  (0) 2024.04.19