Swift 调用类给出错误EXC\u BAD\u指令

Swift 调用类给出错误EXC\u BAD\u指令,swift,swiftui,Swift,Swiftui,我有以下课程: class CoreDataController { @FetchRequest( entity: Meals.entity(), sortDescriptors: [ NSSortDescriptor(keyPath: \Meals.meal_type, ascending: true), ] ) var meal: FetchedResults<Meals> } 它可以编译,但它给了

我有以下课程:

class CoreDataController {
@FetchRequest(
        entity: Meals.entity(),
        sortDescriptors: [
            NSSortDescriptor(keyPath: \Meals.meal_type, ascending: true),
        ]
    ) var meal: FetchedResults<Meals>
}
它可以编译,但它给了我一个错误:
thread1:EXC\u BAD\u指令(code=EXC\u I386\u INVOP,subcode=0x0)


如何修复它?

FetchRequest是视图动态值属性包装器,需要
@Environment(\.managedObjectContext)
,它只能在视图中注入,因此解决方案是将FetchRequest构造放到视图中,它应该在视图中

@Environment(\.managedObjectContext) var context

@FetchRequest(
        entity: Meals.entity(),
        sortDescriptors: [
            NSSortDescriptor(keyPath: \Meals.meal_type, ascending: true),
        ]
    ) var meal: FetchedResults<Meals>

var body: some View {

        List {
            ForEach(meal, id: \.self) { language in

        // .. your other code
@Environment(\.managedObjectContext)变量上下文
@获取请求(
entity:Founds.entity(),
sortDescriptors:[
NSSortDescriptor(键路径:\fines.fine\u类型,升序:true),
]
)var餐:获取结果
var body:一些观点{
名单{
ForEach(餐,id:\.self){语言为
//…您的其他代码

如果我想在另一个文件(如CoreDataModel)上定义
@FetchRequest
,那么每次在视图上定义相同内容的唯一解决方案是什么?@Spyky,那么您需要改用NSFetchRequest。
@Environment(\.managedObjectContext) var context

@FetchRequest(
        entity: Meals.entity(),
        sortDescriptors: [
            NSSortDescriptor(keyPath: \Meals.meal_type, ascending: true),
        ]
    ) var meal: FetchedResults<Meals>

var body: some View {

        List {
            ForEach(meal, id: \.self) { language in

        // .. your other code