如何确定UIImage是否为空?

时间:2015-01-18 20:20:43

标签: ios swift uiimage

如何检查UIImage是否为空?

class UserData {
    ...
    var photo: UIImage = UIImage()
}

我的ViewController代码如下:

var userData = UserData()
    ...

func preparePhoto(){
        if (self.userData.photo == nil) {
            ...
        }else{
            ...
        }
    }

self.userData.photo == nil无法在Swift中使用。

Xcode说:UIImage is not convertible to MirrorDisposition

1 个答案:

答案 0 :(得分:10)

self.userData.photo 永远不会为零,所以这个问题毫无意义。

原因是您已将photo声明为UIImage。这与UIImage?不同 - 一个包装UIImage的可选项。在Swift中只有一个可选的nil。但是,正如我刚才所说,photo 不是是一个可选项。因此无需检查。这就是当你试图进行这样的检查时Swift阻止你的原因。

那么,该怎么办?我有两个可能的建议:

  • 我解决这个问题的实际建议是你键入photo作为UIImage?并将其初始设置为nil(实际上,它隐含为零开始)。现在您可以检查nil以查看是否已为其分配实际图像。

    但请记住,当您想要将其用于任何事情时,您必须记得打开photo! (您可以改为将photo键入为隐式解包的可选项UIImage!,以避免不断展开,但我并不热衷于这个想法。)

  • 另一种可能性是检查图像的大小。如果它是零大小,它可能是你问题的原始意义上的空图像!