SwiftUI LifeCycle

SwiftUI 에는 View 의 상태를 나타내는 함수 즉, 라이프사이클이 아래와 같이 단 두가지 밖에 없습니다.

.onAppear {
	print("View Appeared")
}

.onDisappear {
	print("View Disappeared")
}

대신 상태를 나타내는 다양한 Property Wrapper가 존재하여 데이터 흐름에 대한 여러 상태에 대응할 수 있습니다.


ObservableObject Protocol

이제부턴 위 프로토콜을 따르면 사용할 수 있는 Property Wrapper 에 대해 알아보겠습니다.


@State

struct ContentView: View {
	@State private var number = 0
}

@State 는 String, Int, Bool 과 같은 값 타입에만 사용되는 것이 좋습니다.

일반적으로 @State 변수는 private 으로 선언되고, 다른 View 와는 공유되지 않습니다.

다른 View 와 값을 공유하고 싶다면 @Binding @ObservedObject 를 사용하면 됩니다.

@Binding