core-data - SwiftUI Core Data 错误 - “无法转换类型‘FetchedResults’的值'到预期的参数类型'范围'"
问题描述
任何想法为什么我在这里收到此错误?过去我在单独的测试项目中使用 Core Data 时没有遇到过这种情况。
无法将“FetchedResults”类型的值转换为预期的参数类型“Range”
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")
}
}
}
}
}
错误的视觉形象
核心数据模型
核心数据文件
解决方案
GCItem
需要符合Identifiable
该代码才能工作。一个简单的空一致性应该可以工作,因为它已经有一个id
:
extension GCItem: Identifiable { }
推荐阅读
- javascript - Heroku 不使用反应应用程序更新配置变量
- css - 如何在同一页面上有圆形和矩形图像
- haskell - 如何为具有两个参数的类型实例化 `Functor`?
- sql - 带有随机数的 SQL 选择语句
- sqlite - 在我的 Ubuntu(Ubuntu 18.04.3 LTS/bionic)上设置 Yocto,出现错误“ImportError: No module named '_sqlite3'”
- express - 如何在 Express 中保存持久数据?
- webpack - 将声明标记为无副作用的摇树
- r - 在 dplyr 中混淆 mutate_all 的 .funs 参数
- acumatica - 网格底部的 PagerSetting 显示不正确
- mysql - 重新格式化输入 DATE 数据