0
我正在寻找一种方法来从使用它的类型的整数中获取枚举值。从它的类型创建枚举的实例
下面是我想要做的一个例子;
enum TestEnum: Int {
case A = 0
case B = 1
case C = 2
}
func createEnum<T>(value: Int, type: T.Type) -> T? {
// Some magic here
}
let a = createEnum(0, type: TestEnum.self) // Optional(TestEnum.A)
let b = createEnum(1, type: TestEnum.self) // Optional(TestEnum.B)
let c = createEnum(2, type: TestEnum.self) // Optional(TestEnum.C)
let invalid = createEnum(3, type: TestEnum.self) // nil
我知道你能得到的价值,像这样:
let a = TestEnum(rawValue: 0) // Optional(TestEnum.A)
let b = TestEnum(rawValue: 1) // Optional(TestEnum.B)
let c = TestEnum(rawValue: 2) // Optional(TestEnum.C)
let invalid = TestEnum(rawValue: 4) // nil
但是我希望能够“存储”枚举类型创建(在这种情况下,TestEnum
)和然后再从一个值中创建它,如我的示例所示。
有没有办法在Swift中做到这一点?
有没有办法来约束RawRepresentable到一个地方RawValue是一个Int? –
@jackwilsdon:是:) –
非常感谢! –