Ошибка основных данных SwiftUI - «Невозможно преобразовать значение типа« FetchedResults <GCItem>»в ожидаемый тип аргумента« Диапазон <Int>»» - PullRequest
0 голосов
/ 02 апреля 2020

Есть идеи, почему я получаю эту ошибку здесь? У меня не было этого в прошлом с 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")
                }
            }
        }
    }
}

Визуальное изображение ошибки

enter image description here

Базовая модель данных

enter image description here

Файл основных данных

enter image description here

1 Ответ

2 голосов
/ 02 апреля 2020

GCItem должен соответствовать Identifiable, чтобы этот код работал. Должно работать простое пустое соответствие, так как оно уже имеет id:

extension GCItem: Identifiable { }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...