ios – 枚举大小写的原始值必须是字面值

前端之家收集整理的这篇文章主要介绍了ios – 枚举大小写的原始值必须是字面值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个枚举:
enum GestureDirection:UInt {
    case Up =       1 << 0
    case Down =     1 << 1
    case Left =     1 << 2
    case Right =    1 << 3
}

但是在每一种情况下我都会收到错误

Raw value for enum case must be a literal

我没有得到它

Swift 1.2,Xcode 6.3.2

解决方法

这是因为1< 0不是文字.您可以使用一个字面值的二进制文字,并允许在这里:
enum GestureDirection:UInt {
    case Up =       0b000
    case Down =     0b001
    case Left =     0b010
    case Right =    0b100
}

枚举只支持每个language grammar的原始值文字,它们是数字字符串(数字)字符串字面量(字符串)或布尔型文字(bool).

相反,作为一种解决方法,仍然表明您正在做什么.

猜你在找的iOS相关文章