有什么主意为什么我在这里遇到这个错误?我过去没有在单独的测试项目中使用Core Data。
无法将“ FetchedResults”类型的值转换为预期值 参数类型“范围”
SwiftUI查看代码(下面已标记错误)
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")
}
}
}
}
}
错误的视觉图像
核心数据模型
核心数据文件
答案 0 :(得分:4)
GCItem
必须符合Identifiable
才能使该代码正常工作。一个简单的空一致性应该起作用,因为它已经有一个id
:
extension GCItem: Identifiable { }