出现以下错误:
无法将类型“text”的值转换为闭包结果类型“_”
在我的SwiftUI选择器
:
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)
}
}
我试图通过将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}
}
}
知道问题出在哪里吗?
您需要使用allcases
而不是allcases
,并在string
的init
中添加描述:
参数来修复您的问题。 另外,您不需要给出id:\.self
,因为它已经是可识别的。
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) { chosen in
Text(String(describing: chosen))
}
}.padding(40)
}
}