以下是我收到错误的代码:
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;
}
}
非常感谢帮助。
感谢您的时间
答案 0 :(得分:11)
选项不再被视为布尔表达式(如Swift Reference中所述 - Revision History):
Optionals在有值时不再隐式评估为true,否则不再隐式评估为false,以避免在使用可选的Bool值时出现混淆。相反,使用==或!=运算符对nil进行显式检查,以确定可选项是否包含值。
所以你必须明确如下:
if (fieldValue == nil || ...
我记得在测试版6中发生了变化 - 你使用的是beta 5吗?