6

这是我收到错误的代码:

for (key, value) in info {
    let fieldValue: AnyObject? = value

    if (!fieldValue || fieldValue?.length == 0) { // this line gives the error
        informationComplete = false;
    } 
}

这是 XCode 建议我使用的,它会导致另一个错误:

for (key, value) in info {
    let fieldValue: AnyObject? = value

    if ((!fieldValue || fieldValue?.length == 0) != nil) { //bool not convertible to string
        informationComplete = false;
    }
 }

帮助表示赞赏。

谢谢你的时间

4

1 回答 1

11

选项不再被视为布尔表达式(如 Swift 参考 -修订历史中所述):

选项不再在有值时隐式计算为真,在没有值时为假,以避免在使用可选 Bool 值时产生混淆。相反,使用 == 或 != 运算符对 nil 进行显式检查,以查明可选项是否包含值。

所以你必须明确如下:

if (fieldValue == nil || ...

我记得在 beta 6 中发生了变化——你使用的是 beta 5 吗?

于 2014-09-03T15:20:50.780 回答