如何检查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
答案 0 :(得分:10)
self.userData.photo
永远不会为零,所以这个问题毫无意义。
原因是您已将photo
声明为UIImage。这与UIImage?
不同 - 一个包装UIImage的可选项。在Swift中只有一个可选的nil。但是,正如我刚才所说,photo
不是是一个可选项。因此无需检查。这就是当你试图进行这样的检查时Swift阻止你的原因。
那么,该怎么办?我有两个可能的建议:
我解决这个问题的实际建议是你做键入photo
作为UIImage?
并将其初始设置为nil(实际上,它隐含为零开始)。现在您可以检查nil以查看是否已为其分配实际图像。
但请记住,当您想要将其用于任何事情时,您必须记得打开photo
! (您可以改为将photo
键入为隐式解包的可选项UIImage!
,以避免不断展开,但我并不热衷于这个想法。)
另一种可能性是检查图像的大小。如果它是零大小,它可能是你问题的原始意义上的空图像!