2015-02-08 79 views
0

我正在为我的某个应用程序在用户配置文件屏幕上工作。我想让用户从他的手机中选择一个图像,并能够在应用程序的主屏幕中看到他的个人资料图像。我遇到的问题是,图像比纯文本保存时间更长。我想找到一种方法来确保在segue将用户带到主屏幕之前将图像保存为解析。现在,只要我点击下一步,segue就会将用户带到主屏幕。在主屏幕中,用户的配置文件图像无法显示,因为被“保存”为解析的配置文件图像为空。当发生这种情况时,我得到一个零值异常。将图像保存为解析

注意:当我删除塞格 - 应用程序成功保存用户的信息和用户的图像。

以下代码后,我做我的所有支票上的用户名,密码等

 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) 

    } 

非常感谢你的帮助! 。

回答

2

移动这些行:

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

上涨,成保存图像(你有println("picture was uploaded")现在完成块

+0

谢谢你 - 这真是棒极了应用程序不会崩溃了。 ) – Ronaldoh1 2015-02-09 01:38:05