스위프트 Property Observer | 스위프트강좌 Swift

스위프트 Property Observer

스위프트 Property Observer 무엇일까? 어떻게 사용할까?

Property Observer는 속성값을 지켜보면서 속성값의 변화에 반응한다. 속성 관찰자는 속성에 값들이 할당될 때마다 호출됩니다.

Property Observer를 사용하려면 두 가지 핵심어를 염두해두어야 합니다. 

1. willSet : 값이 저장되기 전에 호출되는 Property Observer 

2. didSet : 새로운 값이 저장된 후, 바로 호출되는 Property Observer 

이해가 잘 되지 않기 때문에 바로 애플의 예제를 확인해봅니다. 

스위프트 Property Observer

위 예제에서 StepCounter라는 클래스를 선언했습니다. 그리고 totalSteps라는 속성값의 괄호 안에 willSet과 didSet를 이용한 코드가 따라옵니다. 내용을 해석하면 StepCounter 안에 totalSteps라는 변수가 있고 변수값을 0으로 초기화합니다. 하지만, totalSteps는 willSet과 didSet이 있기 때문에 해당 속성에 다른 값을 할당함에 따라 Property Observer가 호출됩니다. 

스위프트 Property Observer

stepCounter라는 클래스 객체를 생성하고 totalSteps 속성의 값으로 200을 할당합니다. 그럼 어떤 결과가 나올까요? 

먼저 willSet 부분이 실행됩니다. 왜냐면 willSet은 값이 저장되기 전에 실행되는 구문이기 때문입니다. 따라서, 위 구문의 결과는 다음과 같습니다. 

About to set totalSteps to 200 // willSet 호출 

 

Added 200 steps // didSet호출 

willSet 다음에는 200이 저장됐기 때문에 didSet부분이 또 호출되면서 2줄이 찍힙니다. 

그럼 didSet의 oldValue는 무엇일까요? Property Observer에서 해당 속성값의 이전값을 oldValue라는 내장형 변수로 받습니다. 

따라서 oldValue는 200이 할당되기 전의 초기값인 0이겠죠. 

답글 남기기