
@State 뷰 안에서 완전히 로컬라이즈 된 것. 얼럿 띄우기, 편집, 애니메이션과 같은 일시적인 상태에만 사용한다. View 구조체는 (read - only) 읽기 전용이다. 예로 SwiftUI가 모든 뷰를 유지하는 데 사용하는 변수는 let! 이다. let이면 immutable 하기 때문에 아무도 변경할 수 없으니까 어지럽힐 수도 없다. 또한 뷰 생성 시 초기화되는 변수 외에는 변수가 있는 것이 소용이 없다. 읽기 전용이거나 계산된 변수만 의미가 있다. 뷰는 대부분 "stateless"이어야 하며 모델을 그리는 역할을 한다. 그래서 대부분 뷰는 어떤 상태가 필요하지 않기 때문에 읽기 전용이다. 영구적인 상태는 모델에 속하고 일시적인 상태를 사용할 때 State를 사용한다. @State private ..

이전에 살펴봤던 @State에 이어서 @Binding, @ObservedObject and @EnvironmentObject를 살펴보겠습니다. @State 뷰가 소유하고 있는 변수입니다. @State 변수는 영구 저장소를 할당하게 됩니다. 애플은 @State변수가 특정 뷰에게 관리되고 소유되도록 private 하게 선언하도록 합니다. 2020/11/02 - [개발/SwiftUI] - SwiftUI @State살펴보기 @Binding 데이터를 저장하는 프로퍼티와 데이터를 표시하고 변경하는 뷰 사이에 연결을 @Binding을 사용해 만들 수 있습니다. (즉 다른 뷰에서 @State 변수를 바인딩할 수 있습니다.) @Binding은 데이터의 참조값을 가지고 있기 때문에 @State와 다르게 초기화해주지 않아도..

값이 변하면 UI가 업데이트되어야 한다고 가정해봅시다. 그때 SwiftUI에서는 @State를 사용할 수 있습니다. SwiftUI는 State로 선언된 프로퍼티의 저장 공간을 관리합니다. SwiftUI에서 @State변수가 변경되면 뷰는 appearance를 무효화하고 body를 재계산합니다. 주어진 뷰에 대한 단일 소스로 사용합니다. State 인스턴스는 값 그 자체라는 것이 아니라 값의 읽기와 쓰는 수단입니다. 뷰의 본문 내부 또는 호출된 메서드에서만 프로퍼티에 접근해야 합니다. 뷰 클라이언트가 접근하지 못하도록 프로퍼티를 private으로 선언합니다. 어떤 스레드에서도 프로퍼티 상태를 변경하는 것은 안전합니다. 다른 뷰에 프로퍼티 상태를 전달하기 위해서 $와 변수 이름을 함께 사용해 프로퍼티 속성을..
- Total
- Today
- Yesterday
- stanford SwiftUI
- 스위프트UI
- swift5
- RX
- Algorithm
- iOS SwiftUI
- ARC
- swiftUI
- rxswift
- objc
- 알고리즘
- ios
- wwdc
- 스위프트
- 책
- 독서
- 애니메이션
- 문자열
- 머신러닝
- string
- ReactiveX
- Deep learning
- 딥러닝
- 책 추천
- objective-c
- SWIFT
- Animation
- leetcode
- Xcode
- 책 후기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |