Ответ 1
Используйте CGFloat(number)
вместо Float(number)
pipeDown.position = CGPointMake(0.0, CGFloat(posinonY))
var posinonY:Float = Float(y) + Float(pipeDown.size.height) + Float(verticalPipeGap)
pipeDown.position = CGPointMake(0.0, Float(posinonY))
Я получаю эту ошибку:
"NSNumber" не является подтипом "CGFloat"
Почему?
CGFLoat нужен двойной тип
pipeDown.position = CGPointMake(0.0, Double(posinonY))
это нормально.
Используйте CGFloat(number)
вместо Float(number)
pipeDown.position = CGPointMake(0.0, CGFloat(posinonY))
Так как CGFloat
не является Double
на 32 бит, становится сложно использовать CGGeometry и фреймворки, такие как CoreGraphics или SpriteKit. Эта библиотека немного упрощает и, надеюсь, Apple вскоре позаботится об этом.
Я написал это, чтобы помочь https://github.com/seivan/ScalarArithmetic
Но если вы хотите просто заставить его работать без зависимостей, используйте явно var myFloat:CGFloat
и убедитесь, что вы производите любой Double
(числа, которые выводятся по типу), на CGFloat
2.0 считается двойным и не будет воспроизводиться вместе с CG-Structs
на 32 бит.