【发布时间】:2020-12-03 13:35:16
【问题描述】:
我正在使用 SwiftUI 和 CoreData 以及 SwiftUI 应用程序生命周期(无场景或应用程序委托)构建一个小型应用程序。当我运行+构建我的应用程序时出现以下错误:
'executeFetchRequest:error: A fetch request must have an entity.'
我已经检查/验证/重新检查了以下内容:
- 我的
[app name].xcdatamodeld文件名与我传入 NSPersistentContainerNSPersistentCloudKitContainer(name: [app name])的文件名相同 - 实体名称
Car正是我传递给 FetchRequest 的内容
@FetchRequest(entity: Car.entity(), sortDescriptors: []) var car: FetchedResults<Car>
- 我正在为我的实体 Codegen 选择 Manual/None,生成的类是
public class Car: NSManagedObject {}
在 Car 上的扩展名为 Identifiable。
这是我的整个视图结构,应该(据我理解)将环境传递给它的所有“子”视图。
struct AppView: View {
@Environment(\.managedObjectContext) var moc
@FetchRequest(entity: Car.entity(), sortDescriptors: []) var car: FetchedResults<Car>
var body: some View {
List {
ForEach(car, id:\.self) { item in
RootView(carData: item)
.environment(\.managedObjectContext, self.moc)
}
}
}
}
还有我的@main 结构
@main
struct AutoMateApp: App {
@StateObject var coreData = PersistentCloudKitContainer()
let persistence = PersistentCloudKitContainer()
var body: some Scene {
WindowGroup {
AppView()
.environment(\.managedObjectContext, coreData.persistentContainer.viewContext)
}
}
}
当我使用调试器单步执行时,一旦返回 WindowGroup,就会出现崩溃。我不确定这是否是有用的信息。
感谢您的所有帮助,谢谢。
【问题讨论】:
-
我遇到了完全相同的问题。但我正在为我的核心数据类使用 Xcode 代码生成。你找到解决办法了吗?