我正在使用Swift 2,并且我想将struct
类型与enum
中的每个个案相关联。将类型与Swift枚举类型关联起来?
目前,我已经通过向枚举添加一个函数来解决此问题,该函数名为type
,它使用switch语句为每个案例返回相关类型的实例,但是我想知道是否有必要。我知道你可以将字符串,整数等与Swift枚举关联起来,但是也可以关联一个类型吗?如果有帮助,所有类型的结构都符合相同的协议。
这就是我现在正在做什么,但我喜欢这个功能做掉:
public enum Thingy {
case FirstThingy
case SecondThingy
func type() -> ThingyType {
switch self {
case .FirstThingy:
return FirstType()
case .SecondThingy:
return SecondType()
}
}
}
“这就是我现在正在做的事情,但我很想去除这个功能”为什么?你在做什么使得选择完美。它将类型与案例联系起来!这是一个枚举方法_for_。我建议你保持你的想法并继续前进。 – matt
我当然可以,但我知道用一个字符串等,我可以简单地做'case FirstThingy =“FirstThingy”'。我想知道我们是否有办法用对象来做到这一点。 – Luke
所以你说你想要这个类型是一个原始值?保持这一点,或更好的是,使其成为一个计算属性。然后,你可以使用'thingy.type'而不是'thingy.rawValue'。 – tktsubota