,core-data,swiftui"/>

首页 > 解决方案 > 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")
                }
            }
        }
    }
}

错误的视觉形象

在此处输入图像描述

核心数据模型

在此处输入图像描述

核心数据文件

在此处输入图像描述

标签: core-dataswiftui

解决方案


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

extension GCItem: Identifiable { }

推荐阅读