0

アプリの 1 つのユーザー プロファイル画面で作業しています。ユーザーが携帯電話から画像を選択して、アプリケーションのメイン画面で自分のプロフィール画像を表示できるようにしたかったのです。私が抱えている問題は、画像はプレーンテキストよりも保存に時間がかかることです. セグエがユーザーをメイン画面に移動する前に、画像が解析のために保存されていることを確認する方法を見つけたいと思います。[次へ] をクリックするとすぐに、セグエがユーザーをメイン画面に移動させます。解析用に「保存」されたプロファイル画像が空であるため、メイン画面でユーザーのプロファイル画像を表示できません。これが発生すると、nil 値の例外が発生します。

注:セグエを削除すると、アプリケーションはユーザーの情報とユーザーの画像を正常に保存します。

次のコードは、ユーザー名、パスワードなどのすべてのチェックを行った後のものです。

        if photoSelected == false {
        error = "Please select an image to post"
        }

        if error != "" {
        displayAlert("Cannot Post Image", error: error)

        } else {

        var post = PFObject(className: "Images")
        post["username"] = PFUser.currentUser().username

  post.saveInBackgroundWithBlock({ (success: Bool, error: NSError!) -> Void in

        if success == false {
        self.displayAlert("Could not post Image", error: "Please try again later")

        } else {
        let imageData = UIImagePNGRepresentation(self.profileImage.image)
        let profilePic = PFFile(name: "image.png", data: imageData)

        post["profileImage"] = profilePic;

            //I even added an activity indicator to stall the app before proceeding to the main page. 
            activityIndicator = UIActivityIndicatorView(frame: CGRectMake(0, 0, 200, 200))
            activityIndicator.center = self.view.center
            activityIndicator.hidesWhenStopped = true
            activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge
            self.view.addSubview(activityIndicator)
            activityIndicator.startAnimating()
            UIApplication.sharedApplication().beginIgnoringInteractionEvents()


        post.saveInBackgroundWithBlock({ (success: Bool, error: NSError!) -> Void in


            UIApplication.sharedApplication().endIgnoringInteractionEvents()

        if success == false {
        self.displayAlert("Could not post Image", error: "Please try again later")
        } else {
         //check    
        println("picture was uploaded")

        }
        })

       }
    })
  }


        //saves all the user's values username, password, etc. 
        self.user.save()

     //takes the user to the MainScreen     
    self.performSegueWithIdentifier("moveToMainScreen", sender: self)

    }

手伝ってくれてどうもありがとう!

4

1 に答える 1

2

次の行を移動します。

 //takes the user to the MainScreen     
self.performSegueWithIdentifier("moveToMainScreen", sender: self)

画像を保存するための完了ブロック (println("picture was uploaded")現在の場所.

于 2015-02-08T01:04:10.710 に答える