无法使用类型'($ T7,$ T14)'的参数列表调用'*'

时间:2015-01-24 03:24:04

标签: ios swift

所以,试着把对象变成快速并且遇到这个问题。

    let offset = CGPointMake(location.x - bird.position.x, location.y - bird.position.y);
    let length = sqrtf((Float)(offset.x * offset.x +  offset.y * offset.y))
    let direction = CGPointMake(offset.x / length, offset.y / length)

对于第三行,我收到错误 - 无法使用类型为'($ T5,$ t10)'的参数列表调用'/'。我需要输入什么类型以及解决此问题的方法。同样的事情,

func moveSprite(sprite: SKSpriteNode) {

    let amountToMove = CGPointMake(velocity.x * dt, velocity.y * dt)

}

这里的错误是 - 无法使用类型为'($ T7,$ t14)'的参数列表调用'*'

现在,dt是一个NSTimeinterval,而velocity是一个CGPoint。当我尝试将施法速度键入双精度时,我只是得到另一个错误。 无法使用类型为'($ T9,$ t18)'

的参数列表调用'init'

我需要做些什么来解决这个问题。

1 个答案:

答案 0 :(得分:2)

你不能在Swift中混合使用数字类型。你必须强迫length加入CGFloat。

let direction = CGPointMake(offset.x / CGFloat(length), offset.y / CGFloat(length))

此外,这一行不是Swift:

let length = sqrtf((Float)(offset.x * offset.x +  offset.y * offset.y))

那没有意义;这不是你在Swift中强迫的方式。