iOS 3

[Swift] Actor 란?

동시성 프로그램을 만드는데 있어 어려운 문제중 하나는 Data Race를 피하는 것이다. Data Race란, 2개 이상의 개별 스레드가 동시에 동일 데이터에 접근해 접근중 하나 이상의 write가 발생할때 일어나는 이슈이다 이 DataRace가 일어나는 원인은 데이터가 shared mutable state이기 때문인데 데이터가 변경되지 않거나 공유되지 않는다면 data race는 발생할 수 없다 Actor Actor는 shared mutable state에 대한 동기화 매커니즘으로 Actor는 자신만의 상태를 가지며 해당 상태는 Program의 나머지 부분과 분리된다. Actor를 사용하면 Actor의 상태에 동시에 접근하지 않도록 해준다 class와 같이 사용하면 되지만 클래스와 달리 상속을 지원하지..

iOS/Swift 2024.07.03

[SwiftUI] @State vs @Binding

@State- 값의 변경을 감지하고 뷰를 자동으로 Update하는데 사용된다struct ContentView: View{ @State private var count = 0 var body: some view { VStack { Text("Count: \(count)") Button(action: { count += 1 }) } }} @Binding데이터의 양방향 바인딩을 구현하는데 사용, 뷰 간에 데이터를 공유하고 업데이트 하는데 사용[특징]1. 값의 참조: 값을 저장하지 않고 값의 참조를 저장, 부모 뷰와 자식 뷰가 같은 Data값을 참조2. 양방향 데이터 흐름: 자식 뷰에서 값을 변경하면 해당 변경 ..

iOS/SwiftUI 2024.07.02

[SwiftUI] @StateObject vs @ObservedObject

SwiftUI에서 사용하는 어노테이션중 @StateObject와 @ObservedObject는 왜 사용하는 것일까? @StateObject & @ObservedObject- 둘다 관찰중인 객체의 변경에 반응해서 화면(UI)을 업데이트 할 수 있게 해주는 SwiftUI의 Property Wrapper이다  그렇담 StateObject와 ObservedObject의 차이는 무엇일까? @ObservedObject- StateObject와 ObservedObject는 둘 다 "ObservableObject"라는 Protocol을 따른다final class CounterViewModel: ObservableObject{ @Published var count = 0 func incrementCou..

iOS/SwiftUI 2024.07.01