반응형

 

Hacking with Swift 사이트의 강좌 번역본입니다.

 

[원문 : https://www.hackingwithswift.com/quick-start/swiftui/what-is-the-state-property-wrapper]

 

What is the @State property wrapper?

 

SwiftUI는 구조체 내부에서 값을 수정할수 있도록 @State propery wrapper를 사용하며, 구조체는 값 타입이기 때문에 일반적으로 허용되지 않습니다. property 앞에 @State를 놓을때, 구조체에서 SwiftUI에 의해 관리되는 공유 저장소 안으로 사실상 저장소를 옮깁니다. 이는 SwiftUI가 필요 할때마다(많이 발생할수 있음!) 저장했던 상태(state)를 잃어버리지 않고, 구조체를 파괴하고 재생성 할 수 있다는 것을 의미합니다. 

 

@State String Int 같은 간단한 구조체 타입에 사용해야 하고, 일반적으로 다른 뷰와 공유하지 않아야 합니다. 뷰간에 값을 공유하고자 하는 경우에는, 아마도 @ObservedObject 또는 @EnvironmentObject를 대신 사용해야 합니다 - 이들 모두 데이터가 변경될때 모든 뷰들을 갱신하는 것을 보장할 것입니다.

 

@State property 로컬성을 강화하기 위해서, Apple은 다음과 같이, private로 표시하는 것을 권장합니다. 

@State private var username = ""

 

이는 필수는 아니지만, 현명한 행동으로 보입니다.

반응형
Posted by 까칠코더
,