我在使用Swift时对于CGImageAlphaInfo
和CGBitmapInfo
位操作遇到了麻烦。
具体来说,我不知道如何将这段Objective-C代码转换:
bitmapInfo &= ~kCGBitmapAlphaInfoMask;
bitmapInfo |= kCGImageAlphaNoneSkipFirst;
下面这个简单的 Swift 移植会在最后一行产生有些难以理解的编译器错误
'CGBitmapInfo' is not identical to 'Bool'
:bitmapInfo &= ~CGBitmapInfo.AlphaInfoMask
bitmapInfo |= CGImageAlphaInfo.NoneSkipFirst
查看源代码,我注意到CGBitmapInfo
被声明为RawOptionSetType
,而CGImageAlphaInfo
没有。也许这与此有关?
官方的按位运算符文档并没有涵盖枚举类型,这并没有帮助。
var bitmapInfo: CGBitmapInfo = CGBitmapInfo(rawValue: ~CGBitmapInfo.AlphaInfoMask.rawValue | CGImageAlphaInfo.NoneSkipFirst.rawValue)
。 - JackPearse