반응형
프로퍼티 감시자
- 프로퍼티 값이 변하는 것을 감시
- 프로퍼티의 값이 변할 때 값의 변화에 따른 특정 작업을 실행
- 프로퍼티 감시자는 저장 프로퍼티에 적용할 수 있으며 부모클래스로부터 상속받을 수 있습니다.
프로퍼티 감시자에는 "willSet" 과 "didSet" 두 메소드가 존재합니다.
- willSet : 프로퍼티의 값이 변경되기 전에 호출돼서 변경될 값을 "매개변수"로 갖습니다.
- didSet : 프로퍼티의 값이 변경된 후에 호출돼서 변경되기 전의 값을 "매개변수"로 갖습니다.
아래 코드에서 예시를 확인하시겠습니다.
class CoinPrint {
var coin: Int = 0 {
willSet {
// 편의상 print 를 두 번 실행하도록 했습니다.
print("이 부분은 값이 변경되기 전에 호출됩니다.")
print("따라서 현재 값은 coin: \(coin) 이고 새롭게 할당받은 값은 newValue: \(newValue) 입니다.")
}
didSet {
print("이 부분은 값이 변경된 후에 호출됩니다.")
print("따라서 현재 값은 coin: \(coin) 이고 이전 값은 oldValue: \(oldValue) 입니다.")
}
}
}
var value: CoinPrint = CoinPrint()
value.coin += 100
// 이 부분은 값이 변경되기 전에 호출됩니다.
// 따라서 현재 값은 coin: 0 이고 새롭게 할당받은 값은 newValue: 100 입니다.
// 이 부분은 값이 변경된 후에 호출됩니다.
// 따라서 현재 값은 coin: 100 이고 이전 값은 oldValue: 0 입니다.
반응형
'Mobile > Swift' 카테고리의 다른 글
[코딩테스트 입문] Swift - Day 1 (0) | 2022.12.19 |
---|---|
[Swift - 문법] 프로퍼티(Property) - 3. 타입 프로퍼티 (0) | 2022.11.14 |
[Swift - 문법] 프로퍼티(Property) - 2. 연산 프로퍼티 (0) | 2022.11.14 |
[Swift - 문법] 프로퍼티(Property) - 1. 저장 프로퍼티 (0) | 2022.11.13 |
[Swift - 문법] 구조체와 클래스 (0) | 2022.11.11 |