Picker 不会从 CoreData (SwiftUI) 中选择值

Ant*_*ton 1 xcode core-data ios swift swiftui

我正在尝试从 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")
                        }
                    }
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

结果: 在此处输入图片说明

Asp*_*eri 8

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

@State private var selection: Aircraft? = nil
Run Code Online (Sandbox Code Playgroud)

尝试.tag如下

ForEach(aircrafts, id: \.self) { aircraft in
    Text(aircraft.model ?? "Unknown").tag(aircraft as Aircraft?)
}
Run Code Online (Sandbox Code Playgroud)

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

  • 尝试 .tag(飞机作为飞机?) (3认同)