Значение типа some View не имеет члена onDelete в SwiftUI

В моем приложении есть ItemsListViewОн отображает список элементов, полученных из Core Data.

Я не могу выполнить.onDelete в списке. ПолучениеValue of type 'some View' has no member 'onDelete'ошибка. И вторая ошибка -Protocol type 'Any' cannot conform to 'View' because only concrete types can conform to protocols в списке.

struct ItemsListView: View {
    @Environment(\.managedObjectContext) var managedObjectContext

    var fetchRequest: FetchRequest<Item>
    var items: FetchedResults<Item>{fetchRequest.wrappedValue}

    init() {
        fetchRequest = FetchRequest<Item>(entity: Item.entity(), sortDescriptors: [])
    }

    var body: some View {
        List { //error 2 appears here
            ForEach(items) { (item : Item)  in
                Text("\(item.name ?? "Nothing")")
            }.onDelete(perform: delete) // getting error here
        }
    }

    func delete(at offset: IndexSet) {
        // delete code will be added here
    }
}

Не могу понять, как исправить ошибки и выполнить.onDelete

Базовый элемент данных выглядит так:

public class Item: NSManagedObject, Identifiable {
       @NSManaged public var name: String?
       @NSManaged public var recordID: String?
}

Любая помощь приветствуется.

1 ответ

Похоже, это ошибка в среде Xcode или SwiftUI. После нескольких часов попыток исправить проблему я воссоздал NSManagedObject, очистил Xcode, перезапустил свой Mac, и внезапно все заработало.

Другие вопросы по тегам