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