Ios 二进制运算符'&';无法应用于两个'CGBitmapInfo'操作数

Ios 二进制运算符'&';无法应用于两个'CGBitmapInfo'操作数,ios,swift,Ios,Swift,我正在尝试将UIImage效果类别从Objective-C转换为Swift语言 当我尝试做一些事情时,比如: let inputImageBitmapInfo = CGImageGetBitmapInfo(inputCGImage) let inputImageAlphaInfo = inputImageBitmapInfo & CGBitmapInfo.AlphaInfoMask 错误显示: 二进制运算符“&”不能应用于两个CGBitmapInfo操作数 Objective-C版本可

我正在尝试将UIImage效果类别从Objective-C转换为Swift语言

当我尝试做一些事情时,比如:

let inputImageBitmapInfo = CGImageGetBitmapInfo(inputCGImage)
let inputImageAlphaInfo = inputImageBitmapInfo & CGBitmapInfo.AlphaInfoMask
错误显示:

二进制运算符“&”不能应用于两个
CGBitmapInfo
操作数

Objective-C版本可以与位掩码一起应用,但不能使用Swift 不能

目标C:

typedef CF_OPTIONS(uint32_t, CGBitmapInfo) {
    kCGBitmapAlphaInfoMask = 0x1F,

    kCGBitmapFloatInfoMask = 0xF00,
    kCGBitmapFloatComponents = (1 << 8),

    kCGBitmapByteOrderMask = 0x7000,
    kCGBitmapByteOrderDefault = (0 << 12),
    kCGBitmapByteOrder16Little = (1 << 12),
    kCGBitmapByteOrder32Little = (2 << 12),
    kCGBitmapByteOrder16Big = (3 << 12),
    kCGBitmapByteOrder32Big = (4 << 12)
} CF_ENUM_AVAILABLE(10_4, 2_0);

检查此
CGBitmapInfo
是否符合
选项设置类型
。在Swift中,我们这里不进行二进制操作。相反,我们使用数组。您可以像这样组合CGBitmapInfo
[CGBitmapInfo.AlphaInfoMask,CGBitmapInfo.FloatComponents]
public struct CGBitmapInfo : OptionSetType {
    public init(rawValue: UInt32)

    public static var AlphaInfoMask: CGBitmapInfo { get }

    public static var FloatInfoMask: CGBitmapInfo { get }
    public static var FloatComponents: CGBitmapInfo { get }

    public static var ByteOrderMask: CGBitmapInfo { get }
    public static var ByteOrderDefault: CGBitmapInfo { get }
    public static var ByteOrder16Little: CGBitmapInfo { get }
    public static var ByteOrder32Little: CGBitmapInfo { get }
    public static var ByteOrder16Big: CGBitmapInfo { get }
    public static var ByteOrder32Big: CGBitmapInfo { get }
}