3

这有什么不行的?

enum Aspect : CGFloat {
    case Clockwise = 1.0
    case Anticlockwise = -1.0
}

在逆时针行上,我被告知“枚举大小写的原始值必须是文字”

4

3 回答 3

7

这听起来像一个错误。但是,如果您省略小数部分,它似乎可以工作:

enum Aspect : CGFloat {
    case Clockwise = 1
    case Anticlockwise = -1
}
于 2014-11-20T16:24:34.927 回答
7

奇怪的是,带有减号的浮点数不是文字,而是表达式。所以错误信息是正确的。

来自 Swift 编程语言:

与整数文字不同,负浮点数通过将一元减号运算符 (-) 应用于浮点文字来表示,如 -42.0。结果是一个表达式,而不是浮点文字。

于 2014-11-20T16:36:37.533 回答
1

这已在 Swift 1.2(Xcode 6.3 beta)中得到修复。从发行说明:

负浮点文字现在被接受为枚举中的原始值。

因此,您的代码现在可以毫无问题地编译和工作,您现在还可以定义非整数负枚举值,这在以前是不可能的:

enum Aspect : CGFloat {
    case Clockwise = 1.0
    case Anticlockwise = -1.0
    case Strange = -1.25
}
于 2015-02-10T08:56:33.137 回答