What does this not work?
enum Aspect : CGFloat {
case Clockwise = 1.0
case Anticlockwise = -1.0
}
On Anticlockwise line I'm told that 'raw value for enum case must be a literal'
What does this not work?
enum Aspect : CGFloat {
case Clockwise = 1.0
case Anticlockwise = -1.0
}
On Anticlockwise line I'm told that 'raw value for enum case must be a literal'
That sounds like a bug. However it seems to work if you omit the decimal part:
enum Aspect : CGFloat {
case Clockwise = 1
case Anticlockwise = -1
}
The weird thing is that a float with a minus is not a literal, but an expression. So the error message is correct.
From the Swift programming language:
Unlike with integer literals, negative floating-point numbers are expressed by applying the unary minus operator (-) to a floating-point literal, as in -42.0. The result is an expression, not a floating-point literal.
This has been fixed in Swift 1.2 (Xcode 6.3 beta). From the release notes:
Negative floating-point literals are now accepted as raw values in enums.
So your code now compiles and works without problems, and you can now also define non-integral negative enumeration values, which was not possible before:
enum Aspect : CGFloat {
case Clockwise = 1.0
case Anticlockwise = -1.0
case Strange = -1.25
}