相关疑难解决方法(0)

Swift是否支持隐式转换?

例如,我有以下代码:

    let numberOfBlocks = 3
    let blockWidth = SKSpriteNode(imageNamed: "image.png").size.width
    let padding = 20.0

    let offsetX : Float = (self.frame.size.width - (blockWidth * numberOfBlocks + padding * (numberOfBlocks-1))) / 2
Run Code Online (Sandbox Code Playgroud)

我收到了错误:

'Double'不能转换为'UInt8'

有没有办法隐式转换数据类型(可能只对原始数据类型)?

编辑:

我知道如何通过使用Iducool建议的特定类型的构造函数来进行显式转换.但这对我的问题没什么大帮助,因为我们甚至不知道在哪里添加转换.我简化了我在游乐场的表达:

在此输入图像描述

问题出在"填充"变量,错误信息是

'Double'不能转换为'UInt8'.

所以我做了转换:

在此输入图像描述

那么现在的问题是"blockWidth"变量.

我再次添加了转换:

在此输入图像描述

错误信息是:

类型'UInt8'不符合协议'FloatLiteralCovertible'

最终的工作表达式是:

在此输入图像描述

它简单快捷吗?我不这么认为.

primitive-types implicit-conversion ios swift

29
推荐指数
2
解决办法
2万
查看次数

标签 统计

implicit-conversion ×1

ios ×1

primitive-types ×1

swift ×1