我有这个功能:
func isDrawRadiusEnough(let point: CGPoint) -> Bool {
let distance = sqrtf(powf(point.x-lastPointDrawn.x, 2)+powf(point.y-lastPointDrawn.y, 2))
return distance > drawRadius // Error: Could not find an overload for '>' that accepts the supplied arguments
}
drawRadius
是Int
,是与函数属于同一类的属性。 lastPointDrawn
是CGPoint
,也是属性。
当我将drawRadius
设置为Float时,错误消失,但我不希望它成为浮点数。在Obj-C中这是有效的,但它不在Swift中。有人知道解决方法吗?
答案 0 :(得分:5)
sqrtf
返回Float值。
由于drawRadius
是Int
,因此您需要在执行比较操作之前将其转换为Float
。
尝试return distance > Float(drawRadius)
这是由于Swift实施了类型安全。不执行隐式类型转换。