프로퍼티를 연산해서 저장하는 연산 프로퍼티와 관련되어 있다.
프로퍼티 값의 변화를 관찰하고 이에 응답한다.
새로운 값이 프로퍼티의 현재 값과 동일하더라도 속성 값이 설정될 때마다 호출한다.
<aside>
📎 willSet
: 값이 저장되기 직전에 호출됩니다. 새로운 프로퍼티의 값이 newValue 로 제공
</aside>
<aside>
📎 didSet
: 새로운 값이 저장된 직후에 호출됩니다. 이전 프로퍼티의 값이 oldValue 로 제공
</aside>
*주의 점은 프로퍼티 옵저버를 사용하려면 프로퍼티의 값이 무조건 초기화되어 있어야 한다!
→ 프로퍼티 옵저버는 Model의 갱신된 값을 View에 반영할 때 사용한다.
값이 변경될 때마다 처리를 해줘야 하는 코드를 짤 경우에 didSet
을 사용하면 편리하다.
왜냐하면 새로운 값이 저장된 직후 호출되니까!
class GoogleButton: UIButton {
override var isHighlighted: Bool {
didSet {
backgroundColor = isHighlighted ? .mainBlue : .lineGray
}
}
}
→