반응형
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 = ""
이는 필수는 아니지만, 현명한 행동으로 보입니다.
반응형
'SwiftUI > Appendix A' 카테고리의 다른 글
What is the @FetchRequest property wrapper? (0) | 2019.11.22 |
---|---|
What is the @GestureState property wrapper? (0) | 2019.11.22 |
What is the @Binding property wrapper? (0) | 2019.11.22 |
What is the @Environment property wrapper? (0) | 2019.11.22 |
What is the @EnvironmentObject property wrapper? (0) | 2019.11.22 |
What is the @ObservedObject property wrapper? (0) | 2019.11.21 |
What is the @Published property wrapper? (0) | 2019.11.21 |
Understanding property wrappers in Swift and SwiftUI (0) | 2019.11.21 |