直到Swift 1.2,你可以在位掩码上执行~
(NOT):
bitmask = ~otherBitmask
但是在Swift 2.0中,位掩码现在为OptionSetType
而您无法在~
上使用OptionSetType
,您现在如何对~
进行OptionSetType
操作一个chain/2
?
答案 0 :(得分:5)
您可以对原始值执行“按位NOT”。例如:
let otherBitmask : NSCalendarOptions = [.MatchLast, .MatchNextTime]
let bitmask = NSCalendarOptions(rawValue: ~otherBitmask.rawValue)
如果您经常需要,可以定义通用
~
的{{1}}运算符:
OptionSetType