2015-04-02 7 views
0

Я задумался последние несколько часов, пытаясь исправить эту единственную ошибку в Xcode 6.2 с помощью swift.'CGFloat не конвертируется в' int '

spriteName = "tiki-top-0\(rand)" 
    var toptiki = SKSpriteNode(imageNamed: spriteName) 

    //This line gives me the error 
    toptiki.position = CGPointMake(0, bottomtiki.position.y + heightBetweenObstacles) 

    tikiSet.addChild(toptiki) 
    toptiki.physicsBody = SKPhysicsBody(rectangleOfSize: toptiki.size) 
    toptiki.physicsBody?.dynamic = false 
    toptiki.physicsBody?.categoryBitMask = category_tiki 
    toptiki.physicsBody?.contactTestBitMask = category_car 

Я искал везде, и по какой-то причине я действительно думаю, что где-то есть синтаксическая ошибка. У меня была такая же проблема с физикойBody? .contactTestBitMask с момента обновления до Xcode 6, и это бета, где, как и раньше, '?' не было необходимости. Но теперь по какой-то причине он должен быть прикован.

Я не использую CGFloat здесь, почему это говорит мне, что я не должен использовать int?

Любая помощь очень ценится, я действительно не могу жарить мой мозг дальше, лол

+1

Какой тип heightBetweenObstacles –

+0

Обратите внимание, что 'CGPointMake' принимает два' CGFloats' в качестве аргументов, а не 'Int'. – Evert

+0

Это константа, определенная ранее в коде как «let heightBetweenObstacles = 907» – Jeremy

ответ

0

Я принимаю heightBetweenObstacles определен ранее вдоль этих линий:

let heightBetweenObstacles = 42 

Swift будет вывести Констана тип, и в этом случае он выведет Int. Когда вы пытаетесь добавить его в CGFloat (bottomtiki.position.y + heightBetweenObstacles), он жалуется. Просто явно указать тип вместо:

let heightBetweenObstacles: CGFloat = 42 

Теперь вы не будете иметь никаких проблем при добавлении константы других CGFloat с.

Смежные вопросы