说我有这样的枚举:
enum Direction {
case Left
case Right
}
有没有办法自动派生枚举的字符串描述而不自己定义?像这样:
let direction: Direction = .Left
let description: String = direction.description // should be "Left"
我尝试了reflect( direction)
和MirrorType
上的属性,但这不起作用。
答案 0 :(得分:2)
目前不是。您需要手动为此实现description
功能。斯威夫特的反思非常有限。
答案 1 :(得分:2)
我认为你能做的最接近的是自己实现描述或者将枚举变为字符串:
enum Direction: String {
case Left = "Left"
case Right = "Right"
}
然后,您可以通过direction.rawValue
获取值。显然,没有你想要的那么好,它需要复制枚举值,这是愚蠢的。
然后,您可以根据需要使用原始值来实现描述(允许您使用direction.description
:
var description: String {
return self.rawValue
}