willSet, didSet에 대해 알아보자.
willSet, didSet을 Property Observer(프로퍼티 감시자)라고 한다.
프로퍼티 감시자는 프로퍼티의 값이 새로 할당될때마다 호출된다.
프로퍼티의 값이 변할때 맞춰 적절한 작업 수행이 가능하다.
변경되는 값이 현재와 동일한 값이어도 호출된다.
지연 저장 프로퍼티에는 사용 불가하다.
override된 저장/연산 프로퍼티에 사용 가능하다.
override된 연산 프로퍼티에는 프로퍼티 감시자가 필요도 없고, 지정 불가능하다.
(연산 프로퍼티의 getter, setter로 구현할 수 있으므로 프로퍼티 감시자가 필요없다.)
프로퍼티 감시자인 willSet, didSet에 대해 알아보자.
프로퍼티 값이 변경되기 직전에 호출된다.
willSet의 매개변수는 1개이다.
willSet의 매개변수는 변경될 값(newValue)이다.
프로퍼티의 값이 변경된 직후 호출된다.
didSet의 매개변수는 1개이다.
didSet의 매개변수는 변경되기 전 값(oldValue)이다.

willSet이 호출되고 didSet이 호출되는걸 확인할 수 있다.

willSet의 매개변수 newValue에는 새롭게 할당된 값이
didSet의 매개변수 oldValue에는 이전에 할당되어 있던 값이 출력되는걸 확인할 수 있다.
프로퍼티 감시자가 있는 프로퍼티를 입출력 매개변수의 전달인자로 전달하면 항상
willSet,didSet이 호출된다.
함수 내부에서 값이 변경되지 않아도 함수가 종료되는 시점에 값을 다시 쓰기 때문이다.
프로퍼티에 대해 알아보는 김에 프로퍼티 감시자에 대해서도 알아봤다.
willSet이나 didSet을 사용해 data가 변경될때마다 화면을 업데이트할때 많이 사용했다.
그럼 이만👋