Я создал проект Swift без основных данных, только чтобы добавить их позже. Я скопировал следующий код из реального шаблона в свой проект AppDelegate и создал файл модели coredata. Однако, как только я создал объект coreData с использованием контекста, я получил:
CoreData: ошибка: не удалось загрузить модель с именем coredatatemplate
Завершение работы приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: «NSManagedObject класса «MyApp.Item» должен иметь допустимое NSEntityDescription.
Мне пришлось осмотреться, чтобы выяснить проблему, так как я уже сделал следующее:
Current Product Module вместо ModuleClass Definition для Codegen(Проверьте, чтобы убедиться, что они в порядке, если у вас возникла та же проблема.)
Проблема осталась, и я не мог найти основную причину.





Что было не так в моем случае, так это то, что в коде шаблона использовалось другое имя, чем мой файл CoreData.
В моем AppDelegate:
// MARK: - Core Data stack
lazy var persistentContainer: NSPersistentContainer = {
let container = NSPersistentContainer(name: "DataModel")
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
Используя name: "DataModel", который мне пришлось изменить, чтобы он соответствовал DataModel.xcdatamodeld в моем проекте.