解析:Swift:getDataInBackground,但数据不存在

时间:2015-12-23 05:18:28

标签: ios swift parse-platform

我的解析有问题。我试图为我的用户保存个人资料照片,效果很好。然后我想在图像视图中显示配置文件pic,如果用户查看他自己的配置文件。问题是,当用户之前没有设置配置文件时,它会让我的应用程序崩溃,因为在尝试执行getDataInBackgroundWithBlock函数时没有要查找的数据。我怎么解决这个问题?这是我的代码,应该在profilePicImageView中显示相应的配置文件pic。我之前没有使用else语句尝试过,同样的问题:/

let profileImage = currentUser?.objectForKey("profilePic") as? PFFile

            profileImage!.getDataInBackgroundWithBlock({ (imageData:NSData?, error:NSError?) -> Void in

                if (error == nil){
                    let image:UIImage = UIImage(data: imageData!)!
                    self.profilePicImageView.image = image
                }else {

                    self.profilePicImageView.image = nil

                }

            })

1 个答案:

答案 0 :(得分:0)

ParseUI有一个名为PFImageView的类,它是UIImageView的子类。您可以执行以下操作,而不是使用UIImageView: 1.在Interface Builder中将类设置为PFImageView 2.将PFImageView的出口设置为profilePicImageView 3.将您的代码更改为:

self.profilePicImageView,image = <Any placeholder>
if let profileImage = currentUser?.objectForKey("profilePic") as? PFFile {
   self.profilePicImageView.file = profileImage
   self.profilePicImageView.loadInBackground()
}