二元运算符 > 错误
Binary operator > error
我正在开发一款游戏,在模拟器中一切都完美无缺。但是当我尝试存档项目时,我在该行收到错误消息:
if !shouldDetectScoreCollision && ballClearHeight.native > basketballHoopHeight {
错误:二元运算符 > 不能应用于 cgfloat.native(又名浮点数)和双精度(在 ballClearHeight.native 和 basketballHoopHeight 上)类型的操作数
我还有几个常量:
let halfBall = basketball.size.height/2.0
let ballClearHeight = basketball.position.y - halfBall
let basketballHoopHeight = 200.0
for i in 1 ..< throwPoints.count {
// CGFloat.native is a Double
dx += throwPoints[i].x - throwPoints[i-1].x
dy += throwPoints[i].y - throwPoints[i-1].y
}
我尝试转换 basketballHoopHeight = Float(200.0),这给了我错误:二元运算符 > 不能应用于类型 cgfloat.native(也称为双精度)和浮点(在 ballClearHeight.native 和basketballHoopHeight)
并且还尝试转换 basketballHoopHeight = CGFloat(200.0),这给了我错误:二元运算符 > 不能应用于类型 cgfloat.native(又名浮点数)和 cgfloat(在 ballClearHeight.native和 basketballHoopHeight)
但是,当我转换 let basketballHoopHeight = Float(200.0) 时,游戏在模拟器上运行,但在尝试存档时出现错误。
有什么建议吗?
ballClearHeight.native
是CGFloat
中的值
"native" 类型,在 64 位平台上是 Double
并且
a Float
在 32 位平台上。因此
ballClearHeight.native > basketballHoopHeight // rhs is a Double
ballClearHeight.native > Float(basketballHoopHeight) // rhs is a Float
将为所有平台编译(就像归档一样)。
所以忘记 .native
属性 并只比较 CGFloat
值:
let basketballHoopHeight: CGFloat = 200.0
if !shouldDetectScoreCollision && ballClearHeight > basketballHoopHeight { ... }
我正在开发一款游戏,在模拟器中一切都完美无缺。但是当我尝试存档项目时,我在该行收到错误消息:
if !shouldDetectScoreCollision && ballClearHeight.native > basketballHoopHeight {
错误:二元运算符 > 不能应用于 cgfloat.native(又名浮点数)和双精度(在 ballClearHeight.native 和 basketballHoopHeight 上)类型的操作数
我还有几个常量:
let halfBall = basketball.size.height/2.0
let ballClearHeight = basketball.position.y - halfBall
let basketballHoopHeight = 200.0
for i in 1 ..< throwPoints.count {
// CGFloat.native is a Double
dx += throwPoints[i].x - throwPoints[i-1].x
dy += throwPoints[i].y - throwPoints[i-1].y
}
我尝试转换 basketballHoopHeight = Float(200.0),这给了我错误:二元运算符 > 不能应用于类型 cgfloat.native(也称为双精度)和浮点(在 ballClearHeight.native 和basketballHoopHeight)
并且还尝试转换 basketballHoopHeight = CGFloat(200.0),这给了我错误:二元运算符 > 不能应用于类型 cgfloat.native(又名浮点数)和 cgfloat(在 ballClearHeight.native和 basketballHoopHeight)
但是,当我转换 let basketballHoopHeight = Float(200.0) 时,游戏在模拟器上运行,但在尝试存档时出现错误。
有什么建议吗?
ballClearHeight.native
是CGFloat
中的值
"native" 类型,在 64 位平台上是 Double
并且
a Float
在 32 位平台上。因此
ballClearHeight.native > basketballHoopHeight // rhs is a Double
ballClearHeight.native > Float(basketballHoopHeight) // rhs is a Float
将为所有平台编译(就像归档一样)。
所以忘记 .native
属性 并只比较 CGFloat
值:
let basketballHoopHeight: CGFloat = 200.0
if !shouldDetectScoreCollision && ballClearHeight > basketballHoopHeight { ... }