본문 바로가기
iOS/이슈

[iOS Issue] Core data: Failed to load model

by Sky Titan 2022. 2. 19.
728x90
 

Core data: Failed to load model

I am new to core data. What I am trying to DO: I am trying to create a cocoatouch framework that has an app to add employee details and display them in a table view. So that i can add this framewo...

stackoverflow.com

코어 데이터 사용 도중 다음과 같은 에러가 떴다.

Core data: Failed to load model

 

1. Entity 확인

DataModel에서 Entity들을 클릭해서 Module이 'Current Product Module'로 되어있는지 확인한다.

 

2. DataModel 이름 매치하는지 확인

.xcdatamodeld 파일명과 Container 생성시 name이 같은지 확인한다.

 

3. NSPersistentContainer 생성 시 NSManagedObjectModel 추가

private lazy var persistentContainer: NSPersistentContainer = {
        let momdName = "Model" //pass this as a parameter
        //...

        guard let modelURL = Bundle(for: type(of: self)).url(forResource: momdName, withExtension:"momd") else {
                fatalError("Error loading model from bundle")
        }

        guard let mom = NSManagedObjectModel(contentsOf: modelURL) else {
            fatalError("Error initializing mom from: \(modelURL)")
        }
        let container = NSPersistentContainer(name: momdName, managedObjectModel: mom)
        container.loadPersistentStores(completionHandler: { (storeDescription, error) in
            if let error = error as NSError? {
                fatalError("Unresolved error \(error), \(error.userInfo)")
            }
        })
        return container
    }() // MARK: - Core Data Saving support

 다음과 같이 Bundle에서 NSManagedObjectModel을 생성할 url을 찾아 만든 후 NSPersistentContainer 생성시 넣어준다.

 

 

 

1, 2번에서도 실수를 하지만 아마 DataModel을 프로젝트로 분리해서 다른 모듈에서 생성할 시엔 3번이 가장 중요한 듯 하다.

728x90

댓글