为什么CGBitmapInfo删除了Objective-C中的kCGBitmapByteOrderDefault?

a_your

在Objective-C中,CGBitmapInfo包含:

kCGBitmapAlphaInfoMask = 0x1F,
kCGBitmapFloatInfoMask = 0xF00,
kCGBitmapFloatComponents = (1 << 8),
kCGBitmapByteOrderMask     = kCGImageByteOrderMask,
kCGBitmapByteOrderDefault  = (0 << 12),
kCGBitmapByteOrder16Little = kCGImageByteOrder16Little,
kCGBitmapByteOrder32Little = kCGImageByteOrder32Little,
kCGBitmapByteOrder16Big    = kCGImageByteOrder16Big,
kCGBitmapByteOrder32Big    = kCGImageByteOrder32Big

但是,在Swift 3.0中,CGBitmapInfo删除了kCGBitmapByteOrderDefault:

public struct CGBitmapInfo : OptionSet {

    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 byteOrder16Little: CGBitmapInfo { get }
    public static var byteOrder32Little: CGBitmapInfo { get }
    public static var byteOrder16Big: CGBitmapInfo { get }
    public static var byteOrder32Big: CGBitmapInfo { get }
}

这就是为什么?

我可以初始化CGBitmapInfo类似的东西CGBitmapInfo(rawValue: 0)来替换kCGBitmapByteOrderDefault吗?

OOPer

我可以初始化CGBitmapInfo类似的东西CGBitmapInfo(rawValue: 0)来替换kCGBitmapByteOrderDefault吗?

答案是肯定的。

Swift在某些情况下会省略一些0值枚举标签。(具体取决于Swift的版本)。

如果您发现某些枚举标签没有导入到Swift中,请检查Objective-C中的原始源并确认它确实具有整数值0,然后将其替换为init(rawValue: 0)


添加

我找不到太多有关的信息,这就是为什么?,您只能在Xcode发行说明(> Xcode 8.0> Swift)中找到一个

  • None导入的NS_OPTIONS选项集成员在导入时被标记为不可用。用于[]设置一个空的选项集,而不是一个None成员。

目前尚不清楚该None成员的含义,但是在表示defaultnone,Swift importer的设计人员似乎更喜欢空set文字[]作为OptionSet类型

因此,应修改此答案的前半部分:

您可以使用CGBitmapInfo(rawValue: 0)replace kCGBitmapByteOrderDefault,但最好使用空集文字:

let myBitmapInfo: CGBitmapInfo = []

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么从C ++中删除了重载关键字?

来自分类Java

为什么@EnableWs从Spring bean中删除了aop代理

来自分类Dev

为什么拆分时从文件中删除了IFS值?

来自分类Dev

为什么在Kotlin中删除了索引for循环?

来自分类Dev

为什么从JAXB参考实现中删除了AnnotationReader?

来自分类Dev

为什么在AMD64中删除了BCD指令?

来自分类Dev

为什么在Bootstrap 4中删除了字形图标

来自分类Dev

为什么从Lumen 5.2中删除了工匠服务命令?

来自分类Dev

为什么在sed替换命令中删除了多余的空间

来自分类Dev

为什么/从msdn中删除了文档(Doxygen)?

来自分类Dev

为什么在C ++ 20中从标准库容器中删除了比较运算符?

来自分类Dev

为什么在C ++ 20中对于许多标准库类型都删除了operator!=?

来自分类Dev

为什么列表框行中的单词不仅删除了1行,而且删除了2行?

来自分类Dev

如果git rebase被rebase分支删除了,为什么git rebase删除了最近提交中添加的文件?

来自分类Python

为什么从Python3.0中的sort / sorted中删除了cmp参数?

来自分类Dev

为什么在Rails 5.1.1中删除了会话存储初始化程序

来自分类Dev

为什么从插值器中删除了“react-native-reanimated”?

来自分类Dev

为什么在Elasticsearch 5.1中删除了“雪球”分析器

来自分类Dev

为什么在切换到python3时从python内置函数中删除了重载?

来自分类Dev

为什么从 HTTP/1.1 中删除了 HTTP 状态代码 102

来自分类Dev

为什么从突触中删除了快速查找/过滤器?

来自分类Dev

rsync --delete删除了目标目录中的大多数文件,为什么?

来自分类Dev

为什么从VS2015中删除了“小写”快捷方式?

来自分类Dev

为什么在Chrome“检查元素”中删除了“文本对齐:居中”?

来自分类Dev

为什么从 Ubuntu 11.10 中删除了 Synaptic 包管理器?

来自分类Java

为什么在swt中的font.dispose()上删除了应用的Font?

来自分类Dev

为什么在协议缓冲区3中删除了必需和可选的内容

来自分类Dev

为什么从angularjs.TypeScript.DefinitelyTyped中删除了全局“ angular”变量?

来自分类Dev

如何弄清楚为什么从 spring-boot 存储库中删除了某些文件?

Related 相关文章

  1. 1

    为什么从C ++中删除了重载关键字?

  2. 2

    为什么@EnableWs从Spring bean中删除了aop代理

  3. 3

    为什么拆分时从文件中删除了IFS值?

  4. 4

    为什么在Kotlin中删除了索引for循环?

  5. 5

    为什么从JAXB参考实现中删除了AnnotationReader?

  6. 6

    为什么在AMD64中删除了BCD指令?

  7. 7

    为什么在Bootstrap 4中删除了字形图标

  8. 8

    为什么从Lumen 5.2中删除了工匠服务命令?

  9. 9

    为什么在sed替换命令中删除了多余的空间

  10. 10

    为什么/从msdn中删除了文档(Doxygen)?

  11. 11

    为什么在C ++ 20中从标准库容器中删除了比较运算符?

  12. 12

    为什么在C ++ 20中对于许多标准库类型都删除了operator!=?

  13. 13

    为什么列表框行中的单词不仅删除了1行,而且删除了2行?

  14. 14

    如果git rebase被rebase分支删除了,为什么git rebase删除了最近提交中添加的文件?

  15. 15

    为什么从Python3.0中的sort / sorted中删除了cmp参数?

  16. 16

    为什么在Rails 5.1.1中删除了会话存储初始化程序

  17. 17

    为什么从插值器中删除了“react-native-reanimated”?

  18. 18

    为什么在Elasticsearch 5.1中删除了“雪球”分析器

  19. 19

    为什么在切换到python3时从python内置函数中删除了重载?

  20. 20

    为什么从 HTTP/1.1 中删除了 HTTP 状态代码 102

  21. 21

    为什么从突触中删除了快速查找/过滤器?

  22. 22

    rsync --delete删除了目标目录中的大多数文件,为什么?

  23. 23

    为什么从VS2015中删除了“小写”快捷方式?

  24. 24

    为什么在Chrome“检查元素”中删除了“文本对齐:居中”?

  25. 25

    为什么从 Ubuntu 11.10 中删除了 Synaptic 包管理器?

  26. 26

    为什么在swt中的font.dispose()上删除了应用的Font?

  27. 27

    为什么在协议缓冲区3中删除了必需和可选的内容

  28. 28

    为什么从angularjs.TypeScript.DefinitelyTyped中删除了全局“ angular”变量?

  29. 29

    如何弄清楚为什么从 spring-boot 存储库中删除了某些文件?

热门标签

归档