如何在Swift中的点表示法中使用变量名?
代码如下所示:
enum BitMaskCategory: Int {
case coffeemug = 1
case banana = 2
case cup = 3
}
let selected = self.selectedItem
node.physicsBody?.categoryBitMask = BitMaskCategory.selected.rawValue
错误消息是:
键入' BitMaskCategory'没有会员选择'
selected
是一个包含我选择的项目的变量。 selected
可以是" banana"," cup"或" coffeemug"。例如,如果我选择" banana",node.physicsBody?.categoryBitMask
应该等于" 2"。
答案 0 :(得分:0)
由于所选项目是字符串,我建议基于enum
String
声明并添加计算属性以返回整数值
enum BitMaskCategory: String {
case coffeemug, banana, cup
var maskValue : Int {
switch self {
case .coffeemug: return 1
case .banana: return 2
case .cup: return 3
}
}
}
然后你可以写
let selected = self.selectedItem
node.physicsBody?.categoryBitMask = BitMaskCategory(rawValue: selected)!.maskValue