如何确定UIImage是否为空?

Mor*_*son 7 uiimage ios swift

如何检查a UIImage是否为空?

class UserData {
    ...
    var photo: UIImage = UIImage()
}
Run Code Online (Sandbox Code Playgroud)

我的ViewController代码看起来像:

var userData = UserData()
    ...

func preparePhoto(){
        if (self.userData.photo == nil) {
            ...
        }else{
            ...
        }
    }
Run Code Online (Sandbox Code Playgroud)

self.userData.photo == nil 不适用于Swift.

Xcode说: UIImage is not convertible to MirrorDisposition

mat*_*att 11

self.userData.photo永远是零,所以这个问题是没有意义的.

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

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

  • 我对解决这个实际的建议是,你类型photoUIImage?和最初设置为零(实际上,它是隐含为零从一开始).现在您可以检查nil以查看是否已为其分配实际图像.

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

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