Core data SwiftUI核心数据错误-“;无法转换类型为';获取结果<;GCItem>';到预期的参数类型';范围<;Int>'&引用;

Core data SwiftUI核心数据错误-“;无法转换类型为';获取结果<;GCItem>';到预期的参数类型';范围<;Int>'&引用;,core-data,swiftui,Core Data,Swiftui,你知道我为什么会在这里出错吗?我以前没有在单独的测试项目中使用过核心数据 无法将“FetchedResults”类型的值转换为预期值 参数类型“范围” SwiftUI视图代码(下面有标记错误) 导入快捷界面 导入CoreData 结构ContentView:View{ @环境(\.managedObjectContext)变量上下文 @FetchRequest(实体:GCItem.entity(),sortDescriptors:[])变量gcItems:FetchedResults 专用函数附

你知道我为什么会在这里出错吗?我以前没有在单独的测试项目中使用过核心数据

无法将“FetchedResults”类型的值转换为预期值 参数类型“范围”

SwiftUI视图代码(下面有标记错误)

导入快捷界面
导入CoreData
结构ContentView:View{
@环境(\.managedObjectContext)变量上下文
@FetchRequest(实体:GCItem.entity(),sortDescriptors:[])变量gcItems:FetchedResults
专用函数附加项(标题:字符串){
让newItem=GCItem(上下文:context)
newItem.id=UUID()
newItem.title=标题
做{
尝试context.save()
}把e当作错误来抓{
fatalError(“未解决的错误\(e),\(e.userInfo)”)
}
}
var body:一些观点{
导航视图{
VStack{
列表(){
ForEach(gcItems){gcItem in//**此处有错误***
HStack{
文本(“测试”)
}
}
}
按钮(操作:{self.addItem(标题:“Testing 123”)}){
文本(“添加项”)
}
}
}
}
}
错误的视觉图像

核心数据模型

核心数据文件


GCItem
需要符合
可识别的
,该代码才能工作。简单的空一致性应该可以工作,因为它已经有了
id

扩展GCItem:可识别{}

随着Swift 5.3的推出,Xcode 12上出现了这种情况。因此,我添加了以下编译器指令:
#if swift(
import SwiftUI
import CoreData

struct ContentView: View {
    @Environment(\.managedObjectContext) var context
    @FetchRequest(entity: GCItem.entity(), sortDescriptors: []) var gcItems: FetchedResults<GCItem>

    private func addItem(title:String) {
        let newItem = GCItem(context: context)
        newItem.id = UUID()
        newItem.title = title
        do {
            try context.save()
        } catch let e as NSError {
            fatalError("Unresolved error \(e), \(e.userInfo)")
        }
    }

    var body: some View {
        NavigationView {
            VStack {
                List() {
                    ForEach(gcItems) { gcItem in   // ** ERROR HERE ***
                        HStack {
                            Text("test")
                        }
                    }
                }
                Button(action: { self.addItem(title: "Testing 123") }) {
                    Text("ADD ITEM")
                }
            }
        }
    }
}