Tôi gặp sự cố khi thực hiện thao tác bitwise với CGImageAlphaInfo
và CGBitmapInfo
trong Swift.Thao tác bitwise với CGBitmapInfo và CGImageAlphaInfo
Đặc biệt, tôi không biết làm thế nào chuyển mã Objective-C này:
bitmapInfo &= ~kCGBitmapAlphaInfoMask;
bitmapInfo |= kCGImageAlphaNoneSkipFirst;
Cổng Swift đơn giản sau đây tạo ra hơi khó hiểu trình biên dịch lỗi 'CGBitmapInfo' is not identical to 'Bool'
trên dòng cuối cùng:
bitmapInfo &= ~CGBitmapInfo.AlphaInfoMask
bitmapInfo |= CGImageAlphaInfo.NoneSkipFirst
Nhìn vào mã nguồn tôi nhận thấy rằng CGBitmapInfo
được khai báo là RawOptionSetType
trong khi CGImageAlphaInfo
thì không. Có lẽ điều này có liên quan gì đến nó?
Nó không giúp các tài liệu chính thức về các nhà khai thác bitwise không bao gồm enums.
Không còn hoạt động với Xcode 6.1 – wbarksdale
@wbarksdale Cảm ơn, đã cập nhật cú pháp mới. –
Điều này thay đổi một lần nữa trong nhanh chóng 2.0 mà bây giờ sử dụng OptionSetTypeProtocol. Sử dụng ngay bây giờ 'var bitmapInfo: CGBitmapInfo = CGBitmapInfo (rawValue: ~ CGBitmapInfo.AlphaInfoMask.rawValue | CGImageAlphaInfo.NoneSkipFirst.rawValue)' – JackPearse