无法将“文本”类型的值转换为关闭结果类型“ _”

时间:2020-06-06 10:48:38

标签: ios swift swiftui

我遇到以下错误:

Cannot convert value of type 'Text' to closure result type '_'

在我的SwiftUI Picker中:

struct Settings: View {
    @State var minAge = UserSettings().minAge
    @State var maxAge = UserSettings().maxAge
    @State var chosenSeeking = UserSettings.Seeking.both

    var body: some View {
        VStack {
            Picker("Picker", selection: $chosenSeeking) {
                ForEach(UserSettings.Seeking.AllCases, id: \.self) { chosen in
                    Text(String(chosen))
                }                
        }.padding(40)
    }
}

我试图通过将case传递到上方的enum Seeking中来显示UserSettings.Seeking.AllCases中的每个ForEach

我的模特在下面:

class UserSettings: ObservableObject {
    @Published var minAge = 18.0
    @Published var maxAge = 99.0
    @Published var seeking = Seeking.both

    enum Seeking: Identifiable, CaseIterable {
        case male, female, both
        var id: Seeking {self}

    }
} 

知道什么问题吗?

1 个答案:

答案 0 :(得分:1)

您需要使用allCases而不是AllCases,并在describing:的{​​{1}}中添加String参数来解决问题。另外,您不必提供init,因为它已经可以识别。

id: \.self