我正在尝试从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")
}
}
}
}
}
}
}
结果:
最佳答案
选择的类型应与选择的内容或标签相同。在您的情况下,我认为可以如下
@State private var selection: Aircraft? = nil
尝试使用
.tag
如下ForEach(aircrafts, id: \.self) { aircraft in
Text(aircraft.model ?? "Unknown").tag(aircraft as Aircraft?)
}
更新(特定于可选):根据@ user3687284的评论