https://developer.apple.com/documentation/uikit/uimanageddocument
"A managed document object that integrates with Core Data."
코어 데이터와 통합되는 문서 객체입니다.
@MainActor class UIManagedDocument : UIDocument
UIManagedDocument
는 UIDocument
의 구체화된 서브클래스입니다. 관리된 문서(managed document)를 초기화할 때, 문서 위치를 위한 URL을 구체화해야 합니다. 그러면 문서 객체는 앱의 메인 번들로부터 관리된 객체 모델을 사용해서 문서의 영구 저장소에 접근하기 위해 사용할 코어 데이터 스택을 생성합니다. UIManagedDocument
는 코어 데이터에 필요한 모든 기본적인 설정을 수행합니다. 그리고 어떤 경우에서는 클래스의 인스턴스를 직접 사용(서브클래스 없이)하게 될 것입니다. modelConfiguration
을 사용해 조정자의 생성을 위한 설정 옵션을 제공할 수도 있고, modelConfiguration
을 사용해 모델을 위한 설정 옵션을 제공할 수도 있습니다. UIManagedDocument
의 서브클래스를 생성함으로써 추가적인 커스텀도 수행할 수 있습니다.
persistentStoreName
을 오버라이드할 수 있습니다.managedObjectModel
을 오버라이드할 수 있습니다.persistentStoreType(forFileType:)
을 오버라이드할 수 있습니다.configurePersistentStoreCoordinator(for:ofType:modelConfiguration:storeOptions:)
를 오버라이드할 수 있습니다.관리된 문서를 저장하고 유효성 검증을 하는 것에 있어 에러를 감지하고 처리할 수 있도록 하려면, UIManagedDocument
클래스를 서브클래싱해야 하고, UIDocument
클래스로부터 상속된 아래 두 가지 메소드 중 하나 혹은 모두를 오버라이드해야 합니다.
handleError(_:userInteractionPermitted:)
finishedHandlingError(_:recovered:)
오버라이드하는 것은 필요합니다. 그렇게 하지 않는 경우 에러에 대해 받는 정보는 오직 stateChangedNotification
노티피케이션일 것입니다. 이는 userInfo
딕셔너리를 포함하지 않으며, 특정 에러 정보를 전달해주지 못합니다.