[swift] SwiftUI 뷰의 소멸 시점

SwiftUI에서 뷰의 수명주기를 다루는 것은 중요한 작업입니다. SwiftUI 뷰가 생성될 때마다 적절한 초기화 및 설정 작업을 해야하며, 뷰가 소멸될 때 정리 작업을 수행할 수 있게 해야 합니다.

이 포스트에서는 SwiftUI에서 뷰의 소멸 시점을 다루는 방법에 대해 살펴볼 것입니다.

뷰의 소멸 시점

SwiftUI에서 뷰의 소멸 시점을 파악하려면 @State, @ObservedObject, @EnvironmentObject 등의 속성 래퍼를 사용하여 뷰의 데이터 의존성을 표시합니다. 이러한 속성 래퍼를 사용하면 뷰의 소멸 시점을 파악하여 정리 작업을 수행할 수 있게 됩니다.

struct ContentView: View {
    @StateObject var viewModel = MyViewModel()
    
    var body: some View {
        Text("Hello, World!")
            .onDisappear {
                viewModel.cleanup()
            }
    }
}

위 코드에서 @StateObject로 선언된 viewModel은 뷰의 소멸 시점에서 cleanup() 메서드를 호출하여 정리 작업을 수행합니다.

데모

아래는 SwiftUI에서 뷰의 소멸 시점을 다루는 예시 코드입니다.

struct MyViewModel: ObservableObject {
    func cleanup() {
        // 뷰 소멸 시 정리 작업 수행
    }
}

struct ContentView: View {
    @StateObject var viewModel = MyViewModel()
    
    var body: some View {
        Text("Hello, World!")
            .onDisappear {
                viewModel.cleanup()
            }
    }
}

결론

SwiftUI에서 뷰의 소멸 시점을 파악하고 정리 작업을 수행하기 위해 @State, @ObservedObject, @EnvironmentObject 등의 속성 래퍼를 이용할 수 있습니다. 뷰의 소멸 시점을 다루는 것은 앱의 성능 및 메모리 관리에 중요한 역할을 합니다.

참고: SwiftUI View Lifecycle and Navigation

이상으로 SwiftUI에서 뷰의 소멸 시점에 대해 알아보았습니다. 감사합니다!