我遇到以下错误:
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}
}
}
知道什么问题吗?
答案 0 :(得分:1)
您需要使用allCases
而不是AllCases
,并在describing:
的{{1}}中添加String
参数来解决问题。另外,您不必提供init
,因为它已经可以识别。
id: \.self