SwiftUI 中“some View”类型的值没有成员“onDelete”

Ade*_*aer 6 list swift swiftui swiftui-list

在我的应用程序中,我有一个ItemsListView 它显示从核心数据获取的项目列表。

我无法在列表上执行 .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
    }
}
Run Code Online (Sandbox Code Playgroud)

无法弄清楚如何修复错误并执行 .onDelete

核心数据项如下所示:

public class Item: NSManagedObject, Identifiable {
       @NSManaged public var name: String?
       @NSManaged public var recordID: String?
}
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。

Ade*_*aer 2

看起来这是 Xcode 或 SwiftUI 环境中的错误。经过几个小时的尝试解决问题后,我重新创建了 NSManagedObject,清理了 Xcode,重新启动了我的 mac,突然它就工作了。