iOS/Swift
Swift) 옵저버 프로퍼티를 이용한 데이터 바인딩
Brad_Heo
2022. 10. 18. 20:48
데이터 바인딩을 위한 필요한 것에 대해 생각해 보자
- 프로퍼티 옵저버를 등록한 저장 프로퍼티
- 프로퍼티 옵저버에 등록되어 값이 변경될 떄마다 호출될 클로저 프로퍼티 생성
- 특정 행동에 대한 실행 메소드 선언을 위한
@escaping
클로저 함수
예시 코드
데이터 바인딩 실행 순서에 대해 생각해보자
- 옵저버 프로퍼티에 선언된 클로저 변수 실행
myData
프로퍼티 값 변경 될 때마다 클로저 변수 실행- Why? 옵저버 프로퍼티에 클로저 변수가 선언되어 있어서
- 이스케이핑 클로저 함수에서 특정 행동을 등록하면 프로퍼티에 변화가 있을 시 실행
- 예제 코드에서
print()
문을 수행할 것을 등록
- 예제 코드에서
@escaping
클로저(callback) 실행- Why? myDataListener가 클로저(callback)를 알고 있어 매개변수가 업데이트 될때마다
escaping
실행
- Why? myDataListener가 클로저(callback)를 알고 있어 매개변수가 업데이트 될때마다
위의 함수가 5번 실행되었는데 그 이유는 이미 초기값을 넣을 때 @escaping
클로저 함수가 실행되서 5번 실행 된다.