如何判断 UIImage 是否为空?
How do I determine whether a UIImage is empty?
如何检查 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
self.userData.photo
将 永远不会 为零,所以这个问题毫无意义。
原因是您已将 photo
声明为 UIImage。这与 UIImage?
- 包装 UIImage 的 Optional 不同。 Swift 中只有 Optional 可以为 nil。但是,正如我刚才所说,photo
是 而不是 可选的。因此没有什么可检查的。这就是为什么 Swift 在您尝试执行此类检查时阻止您的原因。
那么,怎么办?我有两个可能的建议:
我对解决这个问题的实际建议是 do 输入 photo
作为 UIImage?
并将其初始设置为 nil (实际上,它从一开始就隐式地为 nil)。现在您可以检查 nil 以查看是否已将实际图像分配给它。
但请记住,当您想要将它用于任何用途时,您必须记得打开 photo
! (您可以输入 photo
作为隐式解包的可选值,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
self.userData.photo
将 永远不会 为零,所以这个问题毫无意义。
原因是您已将 photo
声明为 UIImage。这与 UIImage?
- 包装 UIImage 的 Optional 不同。 Swift 中只有 Optional 可以为 nil。但是,正如我刚才所说,photo
是 而不是 可选的。因此没有什么可检查的。这就是为什么 Swift 在您尝试执行此类检查时阻止您的原因。
那么,怎么办?我有两个可能的建议:
我对解决这个问题的实际建议是 do 输入
photo
作为UIImage?
并将其初始设置为 nil (实际上,它从一开始就隐式地为 nil)。现在您可以检查 nil 以查看是否已将实际图像分配给它。但请记住,当您想要将它用于任何用途时,您必须记得打开
photo
! (您可以输入photo
作为隐式解包的可选值,UIImage!
,以避免不断的解包,但我不太喜欢这个想法。)另一种可能性是检查图像的大小。如果它是零大小,它可能是你问题的原始意义上的空图像!