본문 바로가기
iOS/Swift배우기

SwiftUI에서 {} 동작 원리

by 붕어사랑 티스토리 2024. 3. 20.
반응형

너무 궁금해서 찾아보았다..

 

 

먼저 var body의 경우 아래와 같이 View라는 프로토콜에서 정의되어있고 computed property로 사용된다

 

 

 

 

그럼 VStack은 어떻게 동작하는가?

 

 

https://stackoverflow.com/questions/66704988/returning-multiple-view-objects-from-a-closure-in-swift

 

Returning multiple View objects from a closure in Swift

I often see code like this: VStack { Text("A") Text("B") } From looking at the swift tutorials, I know that this is shorthand for specifying a closure as the last parameter...

stackoverflow.com

 

 

아래 코드같은경우 

 

VStack {
  Text("A")
  Text("B")
}

 

텍스트 뷰가 두개가 동시에 리턴이 되는건가? 

 

일단 정의부를 찾아가면 저 중괄호의 정체는 클로저라는 걸 알 수 있다.

 

 

그리고 ViewBuilder라는걸 들어가보면

 

 

 

buildBlock에 마지막 구현부를 보면 TupleView로 변환하는걸 볼 수 있다. 그리고 실제로 여러뷰를 튜플로 리턴한다고 한다.

 

 

 

대충 아래 링크에 자세히 나와있는데 너무 깊게들어가면 머리아프다...

 

https://github.com/apple/swift-evolution/blob/main/proposals/0289-result-builders.md

 

반응형

'iOS > Swift배우기' 카테고리의 다른 글

[Swift] PropertyWrapper 사용법  (0) 2024.03.22
[SwiftUI] 자식에게 State 전달하기  (0) 2024.03.21
[Swift] Generic이란  (0) 2024.03.20
[Swift] inout 파라미터  (0) 2024.03.20
[Swift] Protocol 배우기  (0) 2024.03.19

댓글