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