개발/SwiftUI
How to access a Core Data managed object context from a SwiftUI view
까칠코더
2019. 12. 3. 10:50
반응형
Hacking with Swift 사이트의 강좌 번역본입니다.
How to access a Core Data managed object context from a SwiftUI view
Core Data와 SwiftUI 설정 지침을 따르는 경우, 이미 관리 객체 컨텍스트가 SwiftUI environment에 추가되어 있습니다.
그렇지 않은 경우, 다음 코드를 scene delegate에 추가해야 합니다.
guard let context = (UIApplication.shared.delegate as? AppDelegate)?.persistentContainer.viewContext else {
fatalError("Unable to read managed object context.")
}
window.rootViewController = UIHostingController(rootView: ContentView().environment(\.managedObjectContext, context))
뷰 컨텍스트를 environment 데이터로 ContentView에 직접 전달하며, ContentView에 @Environment 프로퍼티를 추가해서 관리 객체 컨텍스트를 바로 읽을 수 있다는 의미입니다.
@Environment(\.managedObjectContext) var managedObjectContext
주의 : @FetchRequest를 사용해서 가져오기 요청을 수행하기 위해 관리 객체 컨텍스트에 대한 지역(local) 프로퍼티를 추가할 필요가 없습니다 - 저장, 삭제, 그외 다른 작업들만 필요합니다.
반응형