Подтвердить что ты не робот

Как использовать CGFloat в Swift?

var posinonY:Float = Float(y) + Float(pipeDown.size.height) + Float(verticalPipeGap)
pipeDown.position = CGPointMake(0.0, Float(posinonY))

Я получаю эту ошибку:

"NSNumber" не является подтипом "CGFloat"

Почему?


Edit:

CGFLoat нужен двойной тип

pipeDown.position = CGPointMake(0.0,  Double(posinonY))

это нормально.

4b9b3361

Ответ 1

Используйте CGFloat(number) вместо Float(number)

pipeDown.position = CGPointMake(0.0, CGFloat(posinonY))

Ответ 2

Так как CGFloat не является Double на 32 бит, становится сложно использовать CGGeometry и фреймворки, такие как CoreGraphics или SpriteKit. Эта библиотека немного упрощает и, надеюсь, Apple вскоре позаботится об этом.

Я написал это, чтобы помочь https://github.com/seivan/ScalarArithmetic

Но если вы хотите просто заставить его работать без зависимостей, используйте явно var myFloat:CGFloat и убедитесь, что вы производите любой Double (числа, которые выводятся по типу), на CGFloat 2.0 считается двойным и не будет воспроизводиться вместе с CG-Structs на 32 бит.