[2024 동계 모각코] 3회차

MoonGoon·2024년 1월 9일
0

동계모각코

목록 보기
9/13

목표

@Published로 선언된 값이 바뀌지 않는 오류를 수정하자

문제 상황

xpc 통신을 통해서 각 기능의 on / off 현황을 받아오게 하였는데, 저장된 controller의 값이 view에 반영되지 않았음

원인

view를 struct로 쪼개서 구조화 하였는데, 이떄 on off 여부를 판단할 수 있는 Bool 변수를 @State로 선언하였음

해결 방법

@State 대신 @Binding 사용


Property Wrapper

Property Wrapper에는
@State@Binding등이 있는데 이 두개로 선언을 한 변수를 통해 값의 변화를 감지하여 View를 재 렌더링 하는데 쓰이는데,
@State는 주로 한 구조체나 클래스 내에서 지역적으로만 변화를 감지할 때 사용하고, @Binding은 주로 부모 뷰에서 자식 뷰로 Binding 값을 전달해 줄 때 사용한다.

나의 경우 가장 큰 뷰 안에 반복되는 뷰를 쉽게 재사용하기 위해서 구조화해놓았기 때문에, State 값을 인자로 전달하는 것이 아니라 Binding 값으로 전달 해주어야 정상적으로 값을 받아서 동작할 수 있었다.

profile
Swift 개발자를 희망합니다

0개의 댓글