我在Swift 3中有一个枚举,我可以使用以下代码打印它的名字:
枚举定义
public enum Foo : Int {
case F1
}
以下代码将在控制台中获得F1
print(Foo.F1)
但是当我尝试打印Charts
中定义的枚举时我只能在控制台
中获得HorizontalAlignment
print(Legend.HorizontalAlignment.center)
为什么?
答案 0 :(得分:4)
因为枚举声明为@objc
。在Legend.swift:
@objc(ChartLegendHorizontalAlignment)
public enum HorizontalAlignment: Int
{
case left
case center
case right
}
亲自尝试,在@objc
枚举前添加Foo
,您会看到Foo
已打印出来。虽然我不确定为什么会发生这种情况,但很可能是因为@objc
更改了枚举的调试描述,因为Objective-C枚举只是一系列没有附加任何元数据的整数。 @objc
枚举打印其类型,而Swift枚举打印其大小写。
相关讨论:Why does an @objc enum have a different debug description than a pure Swift enum?