Swift-Binary运算符不能应用于两个" Double"操作数

时间:2017-01-14 23:49:59

标签: swift xcode binary skaction operands

我收到的代码中似乎是一个相对常见的错误,但其他问题的解决方案示例似乎与我的情况无关。例如; (binary operator '/' cannot be applied to two 'Double' operands

    let variable1 = Double()
    let variable2 = Double()
    let array = [5, 10]
    var variable3 = Double()

    func function() {
            let variable1 = 50 / variable2
            let variable3 = Double(arc4random_uniform(UInt32(Double(array.count))))
            let scaleAction = SKAction.scale(by: variable1 * variable3, duration: 1)

无论如何,这都是相关的代码。无论出于何种原因,我收到错误,专注于最后一行中的乘法星,说"二元运算符" *"不能适用于两个" Double"操作数。为什么不能呢?有没有办法解决这个问题?

提前致谢。

1 个答案:

答案 0 :(得分:2)

错误消息有点误导。真正的问题是scale(by:duration:)需要CGFloat作为比例:

open class func scale(by scale: CGFloat, duration sec: TimeInterval) -> SKAction

因此,您需要传递CGFloat。您可以确保variable1variable3CGFloat,也可以使用CGFloat构造函数将其从Double转换为

let scaleAction = SKAction.scale(by: CGFloat(variable1 * variable3), duration: 1)