SwiftUI로 앱을 개발하면서 하위 뷰에서 상위뷰의 Published 값을 Binding 해서 사용을 해야 하는 일이 생겼다.
하위 뷰에서 값이 바뀌면 상위 뷰에서도 뷰 업데이트가 일어나야해서 Combine의 sink를 사용하게 되었는데, sink 내부에 로직 업데이트 하는 코드를 넣어놨더니 값이 이상하게 바뀌는 것..! 알고보니 sink 내부는 Published 값이 바뀌기 전에 호출이 되는 거였다.
swift property로 따져보면 willSet. 내가 만들어놨던 메서드는 Published 값에 바로 접근해서 사용하는 코드라서 함수의 파라메터로 값을 받아서 업데이트 하도록 수정했다.
이렇게 얼렁뚱땅 Combine 제대로 써보기 시작..!
반응형
'SwiftUI > Planting-Mind Dev Log' 카테고리의 다른 글
devlog 06. SwiftUI - FileImporter, FileExporter (0) | 2024.04.09 |
---|---|
devlog 05. Scheme '__' is not currently configured for the test action. (0) | 2024.03.21 |
devlog 04. Localization with String Catalog (0) | 2024.03.13 |
devlog 02. github action 세팅하기 (Feat. github action에서 xcresult 확인하는 법) (0) | 2024.03.04 |
devlog 01. SwiftUI에 CoreData 추가 (0) | 2024.03.03 |