분류 전체보기

    [SwiftUI] @Published, @ObservedObject, @StateObject

    2편에서는 @Published, @ObservedObject, @StateObject를 알아보자. @Published, @ObservedObject, @StateObject 세 가지 Wrapper는 관련이 깊어 한 번에 이해해보자. 먼저 ObservableObject Protocol을 알아야한다. ObservableObject은 객체 내 속성 값이 바뀔 때 호출되는 objectWillChange를 사용할 수 있게 된다. 여기서 @Published가 등장한다. @Published 속성이 변경되면, objectWillChange을 호출해준다. 해당 호출을 감시할 수 있도록 해주는 Wrapper가 @ObservedObject가 된다. class ExampleObservableObject: ObservableO..

    [SwiftUI] @State, @Binding, @AppStorage, @SceneStroage, @FetchRequest

    SwiftUI 에서 사용되는 Property Wrappers 를 정리해보자. @State SwiftUI 관련해서 강좌나 예제 코드를 보면 거의 처음 마주하는 키워드다. https://developer.apple.com/documentation/swiftui/state 변수 값이 바뀌면 변수와 연결된 View를 업데이트 한다. struct PlayButton: View { @State private var isPlaying: Bool = false var body: some View { Button(isPlaying ? "Pause" : "Play") { isPlaying.toggle() } } } RxSwift 의 Observe 기능을 한줄로 줄여버렸다. @Binding @State 변수를 자식 뷰로 전..

    [SwiftUI] ForEach의 id에 대해서

    SwiftUI를 시작하고 나서 반복적인 View를 띄울 때, ForEach라는 걸 알았다. ForEach([2, 4, 6, 8, 10], id: \.self) { Text("\($0) is even") } 이렇게 사용하는데 문제는 저 \.self 라는 걸 처음봤다. https://developer.apple.com/documentation/swiftui/foreach 먼저 공식 문서에는 ForEach에 들어가는 Data의 ID는 Hashable Protocol을 따른다고 한다. https://developer.apple.com/documentation/swiftui/foreach/init(_:id:content:)-6p8p9 또 해당 문서를 봤을 때는, id가 "The key path to the pro..