我在尝试检查是否设置了可选变量时遇到错误。
Error: Type CGPoint? does not confirm to protocol 'BooleanType.Protocol'
这是我的代码:
var point : CGPoint?
if (point) {
...
}
这是不是应该使用Swift中的可选类型?
如何编写if-comparison?
答案 0 :(得分:10)
自测试版5开始,您应该写point == nil
或point != 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 */
}