在Swift中返回布尔值时获取错误消息

时间:2014-06-03 14:49:42

标签: ios swift

我有这个功能:

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
}

drawRadiusInt,是与函数属于同一类的属性。 lastPointDrawnCGPoint,也是属性。

当我将drawRadius设置为Float时,错误消失,但我不希望它成为浮点数。在Obj-C中这是有效的,但它不在Swift中。有人知道解决方法吗?

1 个答案:

答案 0 :(得分:5)

sqrtf返回Float值。

由于drawRadiusInt,因此您需要在执行比较操作之前将其转换为Float

尝试return distance > Float(drawRadius)

这是由于Swift实施了类型安全。不执行隐式类型转换。