Swift:类型不符合协议'布尔类型。协议'

时间:2014-08-06 08:35:00

标签: swift

我在尝试检查是否设置了可选变量时遇到错误。

Error: Type CGPoint? does not confirm to protocol 'BooleanType.Protocol'

这是我的代码:

var point : CGPoint?

if (point) {
   ...
}

这是不是应该使用Swift中的可选类型?

如何编写if-comparison?

1 个答案:

答案 0 :(得分:10)

自测试版5开始,您应该写point == nilpoint != nil

当值是可选的布尔值时,由于混淆而进行了此更改。 例如:

let maybe : Bool? = false
if maybe {
    // executed because `maybe` is an optional having a value (false),
    // not because it is true
}

您也可以像以前一样使用条件分配:

if let assignedPoint = point { 
    /* assignedPoint is now a CGPoint unwrapped from the optional */ 
}