如何检查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会阻止你.
那么该怎么办?我有两个可能的建议:
我对解决这个实际的建议是,你做类型photo的UIImage?和最初设置为零(实际上,它是隐含为零从一开始).现在您可以检查nil以查看是否已为其分配实际图像.
但请记住,photo当您想要将其用于任何事情时,您必须记住打开包装!(你可以改为键入photo一个隐式解包的可选项,UIImage!以避免不断展开,但我不是那么热衷于这个想法.)
另一种可能性是检查图像的大小.如果它是零大小,它可能是你问题的原始意义上的空图像!
| 归档时间: |
|
| 查看次数: |
10449 次 |
| 最近记录: |