如何检查imageView是不是在迅速?

我有一个致命的错误,而迅速打开一个可选的值。

我有一个configuration文件ViewController背景图像和头像图像女巫是一样的。

当用户没有图像设置,我得到了这个致命的错误,而是我想添加一个“默认图像形状”。

我怎么能检查图像是不是零?

这是我的代码:

var currentUser = PFUser.currentUser() let User = currentUser as PFUser let userImage:PFFile = User["profileImage"] as PFFile { userImage.getDataInBackgroundWithBlock{(imageData:NSData!, error:NSError!)-> Void in if !(error != nil) { var image:UIImage! = UIImage(data: imageData) if image != 0 { self.backgroundImageUser.image = image self.avatarUserView.image = image } else if image == 0 { self.backgroundImageUser.image = UIImage(named: "Shape") self.avatarUserView.image = UIImage(named: "Shape") } }}} 

为了得到这个工作,你必须了解可选的链接。 正如苹果文档所言:“可选链是一个查询和调用可能目前为零的可选属性,方法和下标的过程,如果可选包含一个值,则属性,方法或下标调用成功;如果可选的是nil,属性,方法或者下标调用返回nil。多个查询可以链接在一起,如果链中的任何链接都是零,整个链就会优雅地失败。

所以如果你想要一个对象得到一个零值,你必须声明它是可选的。 将对象声明为可选您必须在值后面放置一个问号。 在你的例子中,它看起来就像这样:

  var image:UIImage? ; image = UIImage(data: imageData) ; 

通过将这个UIImage声明为Optional,它将被初始化为nil。

尝试这个:

 userImage.getDataInBackgroundWithBlock{(imageData:NSData?, error:NSError?)-> Void in if let image = UIImage(data: imageData) { self.backgroundImageUser.image = image self.avatarUserView.image = image } else { self.backgroundImageUser.image = UIImage(named: "Shape") self.avatarUserView.image = UIImage(named: "Shape") } } 
 let image : UIImage? = img if image != nil{ }else{ } 

事实上,问题已经出现,就像你在编辑过的post中看到的,我有一个userImage声明不是可选的。

所以现在一切工作正常:

 var currentUser = PFUser.currentUser() let User = currentUser as PFUser if let userImage:PFFile = User["profileImage"] as? PFFile { userImage.getDataInBackgroundWithBlock{(imageData:NSData!, error:NSError!)-> Void in if !(error != nil) { var image :UIImage! = UIImage(data: imageData) self.backgroundImageUser.image = image self.avatarUserView.image = image } }} else { self.backgroundImageUser.image = UIImage(named: "Shape") self.avatarUserView.image = UIImage(named: "Shape") }