왜 @Binding 변수에 @State 변수로는 $를 붙여 넘겨줄까?

한번 예를 들어볼께요🙋🏻 우리가 SwiftUI로 어떤 화면을 구현하려 합니다. PlayView라는 상위뷰가 존재하고 이 내부에는 플레이의 on/off 값을 가진 @State 변수로 isPlaying이 존재합니다. 자 그다음으로 PlayButtonView이라는 하위뷰가 존재하고 이 내부에는 isPlaying과 마찬가지로 @Binding 변수로 isPlaying가 존재한다고 가정해볼께요. 그랬을때 우리는 PlayView 내부에 PlayButtonView를 호출할때 @Binding 변수인 isPlaying에 @State 변수인 isPlaying을 넣어주려합니다. 이때 @State는 바인딩 타입이 아님으로 그냥은 넣어줄 수 없고 $를 붙여서 넣어주게 되는데요😲 여기서 $를 왜 붙이게 되었을까요? 그 이유는 PropertyWrapper에 구현된 projectedValue라는 인스턴스 프로퍼티 때문입니다! SwiftUI에서 이 projectedValue는 Binding<Value>로 감싸져 있는 get 프로퍼티입니다. 해당 프로퍼티를 사용할때는 $를 붙여주도록 되어 있죠. 왜냐하면 PropertyWrapper를 만들때 wrappedValue를 구현해야하는데 이와 헷갈리지 않아야 되기 때문이라고 생각해요🙋🏻 $를 왜 붙여주는지 근간을 탐구해봤습니다🏃🏻

projectedValue

iOYES

projectedValue

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 1월 17일 오전 11:03

댓글 0

    함께 읽은 게시물

    확장성 있는 시스템 설계하기

    ... 더 보기

    확장성 있는 시스템 설계하기 강의 | JYK 매니지먼트 - 인프런

    인프런

    확장성 있는 시스템 설계하기 강의 | JYK 매니지먼트 - 인프런

     • 

    저장 64 • 조회 3,861



    3D Chart를 소개합니다 (feat. WWDC 2025)

    ... 더 보기

    Bring Swift Charts to the third dimension (feat. WWDC 2025)

    iOYES

    Bring Swift Charts to the third dimension (feat. WWDC 2025)

    올해로 개발자 생활이 햇수로 20년째다

    2005년 7월에 일을 시작했으니, 올해로 개발자 생활이 햇수로 20년째다. 중간에 공백이 조금씩 있었으니 꽉 채운 스무 해는 아니지만, 숫자가 주는 무게는 여전하다. 20년이라는 시간이 흘렀다는 사실이 새삼 신기하게 느껴진다.

    ... 더 보기

    고용노동부에서 주관하는 청년미래플러스 3기를 모집 중이라고 합니다.

    구직자와 재직자 두 가지 트랙을 동시에 모집한다고 하네요.

    • 모집 기간: 6월 15일 ~ 8월 3일

    ... 더 보기