2017-01-14 9 views
0

私のコードには比較的一般的なエラーが表示されていますが、他の質問に対する解決策の例は、私の状況。例えば; (binary operator '/' cannot be applied to two 'Double' operandsSwift - バイナリ演算子を2つの "Double"オペランドに適用することはできません

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) 

とにかくすべての関連コードです。何らかの理由で私はエラーを受け取り、最終行の乗算の星に焦点を当てて、 "2項演算子" * "を2つの"ダブル "オペランドに適用することはできないと言っています。 ?。だから

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

、あなたが合格する必要があります。事前に

おかげで、この問題を解決

答えて

2

エラーメッセージは少し誤解を招くある本当の問題はscale(by:duration:)がスケールとしてCGFloatを取るということですCGFloatvariable1variable3がであることを確認することができます秒、またはあなたがDoubleからそれを変換するためにCGFloatコンストラクタを使用することができます。

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

ありがとうございました!これは問題を完全に解決しました。 –

+0

あなたがリンクした質問は本質的に同じことでした。その場合、関数は 'CGFloat'の代わりに' Int'をとりましたが、バイナリ演算子で操作されている2つの値がパラメータの型と一致することを確認する必要があるという点で同じでした。あなたはそれを変換する必要があります。 – vacawama

+0

ああ、私は理解しています、私は今から心に留めておきます。ありがとうございました。 –

関連する問題