반응형
SwiftUI Lecture 9.
- Property Wrappers
Finally we get to talk about what @State, @Published, @ObservedObject really are!
This is a very, very important topic. - Publishers
Just a very “light” treatment of this topic for now. - Demo
Publishers
Palette Chooser (@Binding)
Property Wrappers
앞에 @가 붙은 것들은 다 property wrappers. A property wrapper is actually a struct.
@State :
@Published :
@ObservedObject :
Property Wrapper Syntactic Sugar
@Published var emojiArt: EmojiArt = EmojiArt()
이 구문을 풀어서 쓰면 다음과 같다.
struct 타입의 wrappedValue 변수와 projectedValue 변수를 가지는 Published.
struct Published {
var wrappedValue: EmojiArt
var projectedValue: Publisher<EmojiArt, Never>
}
이 구문은 다음과 같은 변수들을 사용할 수 있도록 해준다.
var _emojiArt: Published = Published(wrappedValue: EmojiArt())
var emojiArt: EmojiArt {
get { _emojiArt.wrappedValue }
set { _emojiArt.wrappedValue = newValue }
}
그리고 property wrapper struct 안의 또다른 변수 projectedValue 에 접근하기 위해서 우리는 $emojiArt 처럼 앞에 $를 붙여 접근할 수 있다. 변수에 $ 안붙이면 연산프로퍼티를 통해 wrappedValue를 얻는 것, $ 붙이면 projectedValue.
각 property wrapper는 서로다른 projectedValue를 가지고 있다.
728x90
반응형
'Swift iOS 앱 개발 > Swift 튜토리얼' 카테고리의 다른 글
[Swift iOS] Core Data 이용한 ToDoList 예제 (0) | 2021.06.12 |
---|---|
[Stanford iOS] Lecture 12. Core Data (0) | 2021.04.13 |
[Stanford iOS] Lecture 8. Gestures JSON (0) | 2021.04.12 |
[Stanford iOS] Lecture 7. Multithreading EmojiArt (0) | 2021.04.09 |
[Stanford iOS] Lecture 6. Animation (0) | 2021.04.09 |