在Swift中使用点表示法中的变量名称

时间:2018-01-10 14:42:14

标签: swift

如何在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"。

1 个答案:

答案 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