Enums Swift3-如何检查枚举中是否存在变量并强制转换其类型
下面是混合类型案例的简单枚举:Enums Swift3-如何检查枚举中是否存在变量并强制转换其类型,enums,swift3,Enums,Swift3,下面是混合类型案例的简单枚举: enum Options { case width case height case gravity } width和height只能有一种类型的Int,但是最后一种类型的gravity-只能容纳一种类型的字符串,例如“北”或“东南” 如何检查给定变量是否存在于该枚举中,并将其值强制转换为特定类型 假设我有一个数组: let arr:Array = ["width", "12"] 我想检查我的枚举中是否存在arr[0](“宽度”),如果
enum Options {
case width
case height
case gravity
}
width
和height
只能有一种类型的Int
,但是最后一种类型的gravity
-只能容纳一种类型的字符串,例如“北”或“东南”
如何检查给定变量是否存在于该枚举中,并将其值强制转换为特定类型
假设我有一个数组:
let arr:Array = ["width", "12"]
我想检查我的枚举中是否存在arr[0]
(“宽度”),如果存在,请将第二个元素arr[1]
(“12”)转换为适当的类型(Int
)
当我显式地将enum的类型设置为String
时,如下所示:
enum Options:String
我无法执行我的检查:
if Options(rawValue: arr[0]) != nil
这远非理想,因为正如前面提到的,我的枚举应该包含混合类型的案例
有没有一种方法可以将显式类型与枚举中的大小写关联起来,这样当我知道枚举中存在arr[0]
时,我就可以将arr[1]
转换为该类型?您似乎误解了枚举的功能。请阅读Hi-Pono,我认为一个结构或者一本字典会更好。如果我误解了你的意图,我很抱歉。@charlessim你是完全正确的-仍然在学习Swift。我用字典来解决我的问题。看来你误解了枚举的功能。请阅读Hi-Pono,我认为一个结构或者一本字典会更好。如果我误解了你的意图,我很抱歉。@charlessim你是完全正确的-仍然在学习Swift。我用字典来解决我的问题。