인프런 커뮤니티 질문&답변

twosom님의 프로필 이미지
twosom

작성한 질문수

SwiftUI - iOS14 퍼펙트 가이드

4 StopWatch_Timer

선생님. 질문드립니다.

해결된 질문

작성

·

241

0

시침과 분침, 그리고 밀리초 침을 만드는 과정에서 second 라는 변수를 @Binding 이 아니라 그냥 일반 변수로 선언하셨잖아요.

ContentView 에서는 time 이라는 값을 @State 로 선언한 상태구요. 이 time 값을 시침, 분침, 밀리초 침에서 사용하고 있는 상황이구요. 

시침같은 곳에서는 @Binding 으로 사용 안하고 일반변수로 사용해도 UI에서 갱신이 되는거같은데 원래 이런 경우에는 @Binding을 사용하지 않나요?

그리고 숫자로 시간이 표시된는 Text View도 @Binding 이 아니더라도 갱신되는 이유가 궁금합니다.

 

항상 좋은 강의 감사합니다.

답변 1

1

iOS Developer - 이정님의 프로필 이미지
iOS Developer - 이정
지식공유자

안녕하세요

 

변수를 사용할 때

하나의 뷰 안에서만 사용되고

화면이나 다른곳에서 변경기능 없이 그 변수값을 보여주기만 하면 되는건 그냥 변수로 사용해도 됩니다.

 

하나의 뷰 안에서만 사용하는데 버튼을 누른다던가 다른쪽에서 값을 변경하는 경우라면 state를 사용해야 됩니다.

 

여러뷰에서 사용해야 되는 값이면 보통 Binding으로 해야 됩니다.

 

화면마다 여러개로 나눈 View를 보시고 그 안에 변수가 어디에 쓰이는지 보시면 구분하기 쉬울 것 같습니다.

 

 

twosom님의 프로필 이미지
twosom

작성한 질문수

질문하기