ios – 可选类型’$T11’不能用作布尔值;自从安装XCode 6 beta 7以来,测试’!= nil’

这是我收到错误的代码:
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;
    }
 }

感谢帮助.

谢谢你的时间

解决方法

Optionals不再被视为布尔表达式(如Swift Reference- Revision History中所述):

Optionals no longer implicitly evaluate to true when they have a value and false when they do not,to avoid confusion when working with optional Bool values. Instead,make an explicit check against nil with the == or != operators to find out if an optional contains a value.

所以你必须明确如下:

if (fieldValue == nil || ...

我记得在测试版6中有所改变 – 你使用的是beta 5吗?

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...