Type()不符合协议

时间:2015-12-02 08:45:51

标签: ios swift

我不知道原因,但我无法检查UIImage是nil是代码

        var arrayBuildingImage: [UIImage] = []

        for(var i = 0; i <= 100; i++){

            var path:String = self.getDocumentsDirectory().stringByAppendingPathComponent("building/\(i).png")

            if ( arrayBuildingImage[i] = UIImage(contentsOfFile: path)? ) {//ERROR HERE

            }
            else{
                break
            }

        }

错误:

Type()不符合协议&#39; BooleanType&#39;

我使用的是Swift 1.1

3 个答案:

答案 0 :(得分:1)

您应该检查它是否为零

let img : UIImage? = UIImage(contentsOfFile: path)
if img != nil {}

或使用&#34;如果让&#34;语句:

if let img = UIImage(contentsOfFile: path) {}

并在更多&#34; Swifty&#34;方式:

guard let img = UIImage(contentsOfFile: path) else { return }
// Do you stuff here

答案 1 :(得分:0)

试试这个:

        arrayBuildingImage[i] = UIImage(contentsOfFile: path)?
        if ( arrayBuildingImage[i] != nil ) {//ERROR HERE

        }
        else{
            break
        }

答案 2 :(得分:0)

您正在使用Swift。

在Swift中,“if”语句的操作数必须是布尔表达式。赋值运算符不生成任何值(如果您愿意,则生成Void类型的值)。

将赋值结果与nil进行比较,或者更好地使用“if let”。