lunchScreen/Interview_Questions

@State에 대해서 설명하시오

Opened this issue · 2 comments

@State에 대해서 설명하시오
  • @State를 변수 앞에 붙이면 해당하는 변수는 구조체와 다른 메모리 상에 올라갑니다.
  • 그리고 이에 대한 주소값만을 가져옵니다.
  • 즉, 결국엔 일종의 포인터처럼 작동해서 주소값 자체는 변경되지 않고 내부값을 변경하면서 사용하는 것입니다.
  • State
    • @State는 SwiftUI에 의해 관리되는 read/write 가능한 property wrapper입니다.
    • @State는 memory를 point하여 값이 변경되면 View를 rebuilt시킵니다.
    • View를 초기화할 때 @State property를 초기화하면 충돌이 일어날 수 있습니다. 그렇기 때문에 항상 @State는 private로 선언해야 하고, 해당 View 내에서 가장 높은 계층에 위치시켜야 합니다.
    • child View에게 read-only access를 제공하기 위해서는 @State를 공유하면 되고, read-write access는 @binding을 공유하면 됩니다.