我正在尝试从CoreData存储中选择实体,但是选择器无法正常工作-它不会显示所选的实体。

我的代码:

import SwiftUI

struct SampleView: View {
    @FetchRequest(entity: Aircraft.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \Aircraft.model, ascending: true)]) var aircrafts: FetchedResults<Aircraft>
    @State private var selection: UUID? = UUID()

    var body: some View {
        NavigationView {
            VStack {
                Form {
                    Picker(selection: $selection, label: Text("Picker")) {
                        ForEach(aircrafts, id: \.self) { aircraft in
                            Text(aircraft.model ?? "Unknown")
                        }
                    }
                }
            }
        }
    }
}

结果:
ios - 选择器不会从CoreData(SwiftUI)中选择值-LMLPHP

最佳答案

选择的类型应与选择的内容或标签相同。在您的情况下,我认为可以如下

@State private var selection: Aircraft? = nil

尝试使用.tag如下
ForEach(aircrafts, id: \.self) { aircraft in
    Text(aircraft.model ?? "Unknown").tag(aircraft as Aircraft?)
}

更新(特定于可选):根据@ user3687284的评论

07-25 21:19