J'ai du mal à effectuer des opérations bitwises avec en particulier, je ne sais pas comment porter cet objectif-c Code: P> cgimaSealphainfo code> et
cgbitmapinfo code> à Swift.
bitmapInfo &= ~CGBitmapInfo.AlphaInfoMask
bitmapInfo |= CGImageAlphaInfo.NoneSkipFirst
3 Réponses :
s'avère que cgimaalphanfo code> doit être converti en
cgbitmapinfo code> afin d'effectuer des opérations biteux. Cela peut être fait comme ceci:
Vous avez le bon code SWIFT SWIFT:
bitmapInfo &= ~CGBitmapInfo.AlphaInfoMask bitmapInfo |= CGBitmapInfo(CGImageAlphaInfo.NoneSkipFirst.rawValue) bitmapInfo |= CGBitmapInfo(CGImageAlphaInfo.PremultipliedLast.rawValue)
Cela a changé à nouveau dans Swift 2.0 qui utilise maintenant l'optionSettypeprotocol. Utilisez maintenant var bitmapinfo: cgbitmapinfo = cgbitmapinfo (Rawvalue: ~ cgbitmapinfo.alphainfomask.rawvalue | cgimaSealphainfo.noneskipfirst.rawvalue) code>
A partir de SWIFT 3, Xcode 8 Beta 5, la syntaxe (comme Jackpearse a souligné, elle est conforme à l'optionSetType Protocol) et nous n'avons plus besoin de Vous pouvez ajouter d'autres paramètres d'information bitmap via l'opérateur ~ cgbitmapinfo.alphainfomask.rawvalue code>, Nous utilisons simplement
| code>, par exemple p>