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

次のエラーが表示されます。

「NSNumber」は「CGFloat」のサブタイプではありません」

なんで?


編集:

CGFLoat には double 型が必要

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

これで結構です。

4

4 に答える 4

39

CGFloat(number)の代わりに使用Float(number)

pipeDown.position = CGPointMake(0.0, CGFloat(posinonY))
于 2014-06-03T08:01:45.247 に答える
7

CGFloat32bit ではないため、CGGeometryDoubleや CoreGraphics や SpriteKit などのフレームワークが使いづらくなります。このライブラリにより、作業が少し楽になります。Apple がすぐに対応してくれることを願っています。

https://github.com/seivan/ScalarArithmeticを支援するためにこれを書きました

ただし、依存関係なしで動作させたい場合は、明示的に使用し、任意の(型が推測される数値) を 2.0var myFloat:CGFloatにキャストするようにしてください。DoubleCGFloatCG-Structs

于 2014-07-07T12:06:49.700 に答える