Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift二进制运算符不能应用于“2”;“双”字;操作数_Swift_Xcode_Binary_Skaction_Operands - Fatal编程技术网

Swift二进制运算符不能应用于“2”;“双”字;操作数

Swift二进制运算符不能应用于“2”;“双”字;操作数,swift,xcode,binary,skaction,operands,Swift,Xcode,Binary,Skaction,Operands,我收到的代码中似乎有一个比较常见的错误,但其他问题的解决方案示例似乎与我的情况不太相关。例如() 这就是所有相关的代码。不管出于什么原因,我收到一个错误,集中在最后一行的乘法星上,说“二进制运算符”*“不能应用于两个“双精度”操作数。为什么不能呢?有什么方法可以解决这个问题吗 提前感谢。错误消息有点误导。真正的问题是scale(by:duration:)使用CGFloat作为刻度: open class func scale(by scale: CGFloat, duration sec: Ti

我收到的代码中似乎有一个比较常见的错误,但其他问题的解决方案示例似乎与我的情况不太相关。例如()

这就是所有相关的代码。不管出于什么原因,我收到一个错误,集中在最后一行的乘法星上,说“二进制运算符”*“不能应用于两个“双精度”操作数。为什么不能呢?有什么方法可以解决这个问题吗


提前感谢。

错误消息有点误导。真正的问题是
scale(by:duration:)
使用
CGFloat
作为刻度:

open class func scale(by scale: CGFloat, duration sec: TimeInterval) -> SKAction
因此,您需要传递一个
CGFloat
。您可以确保
variable1
variable3
CGFloat
s,也可以使用
CGFloat
构造函数将其从
Double
转换为:

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

谢谢!这完全解决了问题。您链接的问题本质上是相同的。在这种情况下,函数采用了
Int
而不是
CGFloat
,但解决方案是相同的,因为您需要确保二进制运算符操作的两个值与参数类型匹配,或者你需要转换它。哦,我明白了,从现在起我会记住的。再次感谢你。
let scaleAction = SKAction.scale(by: CGFloat(variable1 * variable3), duration: 1)