为什么我在swift和optionSetType结构值中使用以下代码获取参数类型拒绝?

时间:2016-06-24 17:00:00

标签: swift comparison optionsettype

struct TimeMark: OptionSetType {

private enum TimeMark : Int,CustomStringConvertible {
    case Header=0, Current=1

    var description : String {
        var shift = 0
        while (rawValue >> shift != 1){ shift += 1 }
        return ["Header", "Current"][shift]
    }
}

let rawValue: Int

internal init(rawValue: Int) {
    self.rawValue = rawValue
}
private init(_ timeMark: TimeMark) { self.rawValue = timeMark.rawValue 
}

static let Header = 0
static let Current = 1

}

let mark: TimeMark

let rounded: Bool = mark == TimeMark.Current

我收到最后一行的拒绝。

enter image description here

我还将我的比较运算符更改为===(我认为它不会起作用)并且它也不起作用。

1 个答案:

答案 0 :(得分:0)

您应该在使用或访问它之前对其进行初始化。试试这个:

let mark = TimeMark()
let rounded = (mark.rawValue == TimeMark.Current)