布朗对的枚举

时间:2016-02-02 20:59:38

标签: swift

我的枚举有点问题。我试着宣布:

enum Test : (Bool, Bool) {
    case Both = (true, true)
    case None = (false, false)
}

我收到了这个错误:

  • 语句不能以闭包表达式

  • 开头
  • 支持的语句块是未使用的闭包

  • 类型名称的预期标识符

  • 预期'('枚举

感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

我认为OptionSetType会更好:

struct MyOptions : OptionSetType {
    let rawValue: Int

    init(rawValue: Int) { self.rawValue = rawValue }
    static let FirstOption = MyOptions(rawValue: 1)
    static let SecondOption = MyOptions(rawValue: 2)
    static let ThirdOption = MyOptions(rawValue: 4)
}

let opt1: MyOptions = []
let opt2: MyOptions = [.FirstOption, .ThirdOption]

opt1已关闭所有标记。 opt2已打开第一个和第三个标记。您可以通过以下方式测试标志是否已打开:

if opt2.contains(.FirstOption) {
    // true
}