프로퍼티 옵저버
프로퍼티 옵저버란 해당 프로퍼티를 관찰하는것 이라고 할 수 있다. 프로퍼티 옵저버는 해당 프로퍼티를 관찰하면서 변경 사항이 발생할 때 실행된다.
프로퍼티 옵저버를 사용하기 위해서는 변수에 프로퍼티 옵저버를 정의하여 프로퍼티 값의 변경 사항을 모니터링 하고, 미리 구현한 코드로 이에 대응하는 방식으로 사용된다.
프로퍼티 옵저버는 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 |