可选types'$ T11'不能用作布尔值; 从安装XCode 6 beta 7开始,testing'!= nil'

这里是我得到错误的代码:

for (key, value) in info { let fieldValue: AnyObject? = value if (!fieldValue || fieldValue?.length == 0) { // this line gives the error informationComplete = false; } } 

这是XCodebuild议我使用这会导致另一个错误:

 for (key, value) in info { let fieldValue: AnyObject? = value if ((!fieldValue || fieldValue?.length == 0) != nil) { //bool not convertible to string informationComplete = false; } } 

帮助表示赞赏。

谢谢你的时间

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

如果选项不具有值,则不会将其隐式评估为true,而在使用可选的Bool值时则不会造成混淆。 相反,使用==或!=运算符对nil进行显式检查,以确定可选是否包含值。

所以你必须明确如下:

 if (fieldValue == nil || ... 

我记得在testing版6中改变了 – 你使用的是beta 5吗?