Swift-使用参数获取枚举中的大小写和值
我有这个Swift-使用参数获取枚举中的大小写和值,swift,swift4,Swift,Swift4,我有这个enum public enum Format { case label(key: String) case textField(key: String) case image(key: String) } 我可以像这样使用它: Format.label(键:“abc”) Format.textField(键:“0.0”) Format.image(键:“mystringfile”) 当我尝试获取值时,我可以使用以下方法: let control = Forma
enum
public enum Format {
case label(key: String)
case textField(key: String)
case image(key: String)
}
我可以像这样使用它:
Format.label(键:“abc”)
Format.textField(键:“0.0”)
Format.image(键:“mystringfile”)
当我尝试获取值时,我可以使用以下方法:
let control = Format.label(key: "abc")
if case let Format.label(key) = control {
tmp = key
} else if case let Format.image(key) = control {
tmp = key
} else if case let Format.textField(key) = control {
tmp = key
}
有了它,我可以得到值,但我找不到大小写标签
,文本字段
或图像
如何找到属于该变量的枚举
如果我试着使用这样的东西:
control==Format.label
我得到一个错误:
二进制运算符“==”不能应用于类型为的操作数
“Table.Format”和“(String)->Format”
我可能误解了你的问题,但为什么不使用开关呢
let control = Format.label(key: "abc") // or = Format.textField(key: "whatever") or = Format.image(key: "whatever")
let tmp: String
switch control {
case .label(let key):
// It's a label, do what you need
tmp = key
case .textField(let key):
// It's a textField, do what you need
tmp = key
case .image(let key):
// It's a image, do what you need
tmp = key
}
这允许您对类型进行操作并获取值