我正试图在SwiftUI中将我的Enum案例作为列表选项呈现。我使用的是Xcode 13.2.1
我的问题是将枚举类型的状态变量绑定到List选项。我得到编译器错误"未能推断出泛型参数"SelectionValue";
enum MyEnum : String, CaseIterable, Identifiable
{
var id : RawValue { rawValue }
case A = "_A_"
case B = "_B_"
case C = "_C_"
}
struct MyView : View
{
@State var choice : MyEnum = MyEnum.A
var body : some View
{
List( MyEnum.allCases , selection: $choice) // << Generic parameter error here
{ name in
Text(name.rawValue)
}
}
}
试图指定通用参数似乎对我也没有帮助。
例如,我尝试了
List<MyEnum, ForEach<[MyEnum], String, Text>>( MyEnum.allCases , selection: $choice)
但是得到相同的编译器错误
List
选择类型需要是可选的。这是固定部件
struct MyView : View
{
@State var choice : MyEnum? = MyEnum.A // << here !!
// .. other content
}