枚举大小写的原始值必须是文字 [英] Raw value for enum case must be a literal
本文介绍了枚举大小写的原始值必须是文字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这个枚举:
enum GestureDirection:UInt {
case Up = 1 << 0
case Down = 1 << 1
case Left = 1 << 2
case Right = 1 << 3
}
但是在每种情况下我都会出错:
But on every case I get error:
枚举大小写的原始值必须为文字
Raw value for enum case must be a literal
我不明白.
Swift 1.2,Xcode 6.3.2
Swift 1.2, Xcode 6.3.2
推荐答案
这是因为1 << 0
不是文字.您可以使用二进制文字,它是一个文字,并且可以在其中使用:
That's because 1 << 0
isn't a literal. You can use a binary literal which is a literal and is allowed there:
enum GestureDirection:UInt {
case Up = 0b000
case Down = 0b001
case Left = 0b010
case Right = 0b100
}
枚举仅支持raw-value-literal
,根据作为一种变通方法,它仍然可以很好地说明您在做什么.
Instead as a workaround and still give a good indication of what you're doing.
这篇关于枚举大小写的原始值必须是文字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文