가령 아래와 같은 코드가 있다고 친다면,

@Binding var momentDate: Date

위 변수에는 세 가지 방법으로 접근할 수 있다.

  1. self._momentDate
  2. self.momentDate
  3. self.$momentDate

1번은 Binding<Date> 구조체 자체를 나타낸다.
2번은 self._momentDate.wrappedValue를 타나낸다. 즉 Date 자료형의 값 그 자체이다. View Body의 UI를 렌더링 할 때에는 이 값을 사용한다.
3번은 self._momentDate.projectedValued와 같다. 다시 말해 Binding<Date>이며, 이 값은 Child View에게 내려주면 Child View의 UI가 값을 변경할 때 사용할 수 있다.

Binding의 경우 Projected Value($)는 self 이다. 그리고 _와 $의 차이는 액세스 레벨 뿐이다. 하지만 프로퍼티 래퍼마다 각자 다른 형식의 값을 나타낼 수 있다. (예를 들어 Language Guide@SmallNumber를 살펴보자)

원문: StackOverflow


WRITTEN BY
artfrige
베이스 연주는 건강에 좋습니다
,