1️⃣ didset이 뭐지?


프로퍼티를 연산해서 저장하는 연산 프로퍼티와 관련되어 있다.

프로퍼티 값의 변화를 관찰하고 이에 응답한다.

새로운 값이 프로퍼티의 현재 값과 동일하더라도 속성 값이 설정될 때마다 호출한다.

<aside> 📎 willSet : 값이 저장되기 직전에 호출됩니다. 새로운 프로퍼티의 값이 newValue 로 제공

</aside>

<aside> 📎 didSet : 새로운 값이 저장된 직후에 호출됩니다. 이전 프로퍼티의 값이 oldValue 로 제공

</aside>

*주의 점은 프로퍼티 옵저버를 사용하려면 프로퍼티의 값이 무조건 초기화되어 있어야 한다!

→ 프로퍼티 옵저버는 Model의 갱신된 값을 View에 반영할 때 사용한다.

값이 변경될 때마다 처리를 해줘야 하는 코드를 짤 경우에 didSet을 사용하면 편리하다.

왜냐하면 새로운 값이 저장된 직후 호출되니까!

class GoogleButton: UIButton {
    
    override var isHighlighted: Bool {
        didSet {
            backgroundColor = isHighlighted ? .mainBlue : .lineGray
        }
    }
}