var posinonY:Float = Float(y) + Float(pipeDown.size.height) + Float(verticalPipeGap)
pipeDown.position = CGPointMake(0.0, Float(posinonY))
Je reçois cette erreur:
"NSNumber" n'est pas un sous-type de "CGFloat" "
Pourquoi?
CGFLoat besoin de type double
pipeDown.position = CGPointMake(0.0, Double(posinonY))
c'est acceptable.
Utilisez CGFloat(number)
au lieu de Float(number)
pipeDown.position = CGPointMake(0.0, CGFloat(posinonY))
Puisque CGFloat
n'est pas une Double
sur 32 bits, il devient difficile d'utiliser CGGeometry et des frameworks tels que CoreGraphics ou SpriteKit. Cette bibliothèque le rend un peu plus facile et, espérons-le, Apple s'en occupera bientôt.
J'ai écrit ceci pour aider https://github.com/seivan/ScalarArithmetic
Mais si vous voulez simplement le faire fonctionner sans dépendances, utilisez var myFloat:CGFloat
explicitement, et assurez-vous de transtyper toute Double
(nombres inférés) en CGFloat
2.0 est déduit d'être un double et ne jouera pas avec le CG-Structs
sur 32bit.
Comme dans Swift 4
utilisation
CGPoint(x: 12.0, y: 100.0)