1

オプションの値を迅速にアンラップ中に致命的なエラーが発生しました。

背景画像とアバター画像の魔女を持つプロファイルViewControllerが同じです。

ユーザーが画像セットを持っていない場合、この致命的なエラーが発生しました。代わりに、「デフォルトの画像形状」を追加したいと思います。

画像が nil でないかどうかを確認するにはどうすればよいですか?

これは私のコードです:

 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")
            }
            }}}
4

5 に答える 5

2

これを試して:

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")
    }
}
于 2014-08-27T09:15:31.463 に答える
-1

実際、編集された投稿でわかるように、問題が発生しました。オプションではない 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")

    }
于 2014-08-27T11:41:38.357 に答える