你如何表演"〜" (按位NOT)在OptionSetType上

时间:2015-08-11 19:09:31

标签: swift set swift2 bitmask

直到Swift 1.2,你可以在位掩码上执行~(NOT):

bitmask = ~otherBitmask

但是在Swift 2.0中,位掩码现在为OptionSetType而您无法在~上使用OptionSetType,您现在如何对~进行OptionSetType操作一个chain/2

1 个答案:

答案 0 :(得分:5)

您可以对原始值执行“按位NOT”。例如:

let otherBitmask : NSCalendarOptions = [.MatchLast, .MatchNextTime]
let bitmask = NSCalendarOptions(rawValue: ~otherBitmask.rawValue)

如果您经常需要,可以定义通用 ~的{​​{1}}运算符:

OptionSetType