表单中的 SwiftUI Picker 不显示来自 CoreData 的复选标记

SwiftUI Picker in Form does not show checkmark from CoreData

我有一个问题,在选择器中选择一个值后,我没有看到它被选中:

struct SampleView: View {
    @FetchRequest(
        entity: Category.entity(),
        sortDescriptors: [
            NSSortDescriptor(keyPath: \Category.title, ascending: true)
        ]

    ) var categories: FetchedResults<Category>
    @State private var category = UUID()

    var body: some View {
        NavigationView {
        VStack {
            Form {
                Picker(selection: $category, label: Text("Picker")) {
                    ForEach(categories) { cat in
                        Text(cat.title!)
                    }
                }
            }
        }
        }
    }
}

我的核心数据有这两个属性:

@NSManaged public var title: String?
@NSManaged public var id: UUID?

Picker中的选择应与显示值的类型相同,因此您需要

@State private var category: UUID? = UUID()

注意: 可能是由于我的示例中没有提供所有代码,我需要按如下方式更改您的代码以使其可编译(使用 Xcode 11.2 测试)

ForEach(categories, id: \.id) { cat in