swift property observerLanguage/Swift2022. 8. 23. 16:04
Table of Contents
특정 프로퍼티의 값이 변경되면 반응을 하는 구문입니다.
- willSet : 프로퍼티의 값이 변경되기 직전에 호출되는 옵저버
- didSet : 프로퍼티의 값이 변경된 직후에 호출되는 옵저버
var <프로퍼티명> : <타입> [ = <초기값> ] {
willSet [ (<인자명>) ] {
<프로퍼티 값이 변경되지 전에 실행할 내용>
}
}
var <프로퍼티명> : <타입> [ = <초기값> ] {
didSet [ (<인자명>) ] {
<프로퍼티 값이 변경된 후에 실행할 내용>
}
}
대괄호의 경우에는 생략을 해도 됩니다.
struct Job {
var income: Int = 0 {
willSet {
if income == 0 {
print("월급이 \(newValue)로 책정이 되었습니다")
} else {
print("월급이 \(income)에서 \(newValue)으로 변경되었습니다")
}
}
didSet {
if income > oldValue {
if oldValue != 0 {
print("월급이 \(income - oldValue)만큼 인상되었습니다.")
}
} else if income < oldValue {
print("월급이 \(oldValue - income)만큼 삭감되었습니다.")
}
}
}
}
var job = Job()
job.income = 1000000
print("3개월 후")
job.income = 1500000
/* result is
* 월급이 1000000로 책정이 되었습니다
* 3개월 후
* 월급이 1000000에서 1500000으로 변경되었습니다
* 월급이 500000만큼 인상되었습니다.
*/
didSet에서 사용하는 oldValue와 willSet에서 사용하는 newValue 는 시스템에서 만들어서 제공하는 상수입니다.
'Language > Swift' 카테고리의 다른 글
swift optional chain (0) | 2022.08.24 |
---|---|
swift class type casting, init (0) | 2022.08.24 |
swift date, dateFormatter 날짜 구하기 (0) | 2022.08.23 |
swift computed property 연산 프로퍼티 (0) | 2022.08.23 |
swift nested function (0) | 2022.08.22 |
@jaewpark :: 코스모스, 봄보다는 늦을지언정 가을에 피어나다
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!