iOS/Swift

Swift) 옵저버 프로퍼티를 이용한 데이터 바인딩

Brad_Heo 2022. 10. 18. 20:48

데이터 바인딩을 위한 필요한 것에 대해 생각해 보자

  1. 프로퍼티 옵저버를 등록한 저장 프로퍼티
  2. 프로퍼티 옵저버에 등록되어 값이 변경될 떄마다 호출될 클로저 프로퍼티 생성
  3. 특정 행동에 대한 실행 메소드 선언을 위한 @escaping 클로저 함수

예시 코드

데이터 바인딩 실행 순서에 대해 생각해보자

  1. 옵저버 프로퍼티에 선언된 클로저 변수 실행
  2. myData 프로퍼티 값 변경 될 때마다 클로저 변수 실행
    • Why? 옵저버 프로퍼티에 클로저 변수가 선언되어 있어서
  3. 이스케이핑 클로저 함수에서 특정 행동을 등록하면 프로퍼티에 변화가 있을 시 실행
    • 예제 코드에서 print()문을 수행할 것을 등록
  4. @escaping 클로저(callback) 실행
    • Why? myDataListener가 클로저(callback)를 알고 있어 매개변수가 업데이트 될때마다 escaping 실행

위의 함수가 5번 실행되었는데 그 이유는 이미 초기값을 넣을 때 @escaping 클로저 함수가 실행되서 5번 실행 된다.

'iOS > Swift' 카테고리의 다른 글

Swift) 코드로 UITableView 구현하기  (0) 2023.02.04
Swift) NumberFomatter  (0) 2022.12.02
Swift) Delegate, Notification 둘 중 어느 것을 사용해야 할까  (0) 2022.10.12
Swift) Realm 연동하기  (0) 2022.10.12
Swift) SwiftLint 적용  (0) 2022.09.10