【发布时间】:2021-01-15 05:19:02
【问题描述】:
错误
我今天第一次开始使用 CoreData,但一直遇到这个错误。
Thread 1: "An NSManagedObject of class 'MenuRPG.Inventory' must have a valid NSEntityDescription."
但是,我不确定如何解决这个问题。
我尝试过的:
- 将实体模块更改为
Current Product Module - 检查实体名称和类名称
- 删除我的实体并重新制作它
但每次我尝试将新信息添加到我的数据模式时,我的应用程序都会崩溃并显示该错误。
我的代码:
import SwiftUI
struct BagMenu: View {
@Environment(\.managedObjectContext) var moc
@FetchRequest(entity: Inventory.entity(), sortDescriptors: []) var items:
FetchedResults<Inventory>
var body: some View {
VStack {
List {
ForEach(items, id: \.id) { item in
Text(item.name ?? "Unnamed")
}
}
Button("Bake") {
let breadPrefix = ["Half-baked", "Decent", "Perfect"]
let breadTypes = ["rye", "sourdough", "bagel"]
let chosenPrefix = breadPrefix.randomElement()!
let chosenBread = breadTypes.randomElement()!
let item = Inventory(context: self.moc)
item.id = UUID()
item.name = "\(chosenPrefix) \(chosenBread)"
try? self.moc.save()
}
}
}
}
任何帮助将不胜感激!
【问题讨论】:
-
您可以修改您的代码以使用
@FetchRequest(sortDescriptors: []) private var items: FetchedResults<Inventory>并尝试吗?