从parse.com检索数据时出错

你好,我想从我的parse.com类中获取一些名为“Tags”的数据,这个类有两个3 cols“objectID”,“username”和“tagtext”。 我想通过ID和后缀来读取logging查找,并将“useername”和“tagtext”保存为两个string。 我已经像parse.com文档中那样做了:

@IBAction func readAction(sender: UIButton) { var query = PFQuery(className:"Tags") query.getObjectInBackgroundWithId("IsRTwW1dHY") { (gameScore: PFObject?, error: NSError?) -> Void in if error == nil && gameScore != nil { println(gameScore) } else { println(error) } } let username = gameScore["username"] as! String let tagtext = gameScore["tagtext"] as! String println(username) println(tagtext) } 

我得到一个错误,称为fatal error: unexpectedly found nil while unwrapping an Optional value ,请告诉我什么是我的代码中的错误。

我的课:

在这里输入图像说明

问题是:

 let username = gameScore["username"] as! String let tagtext = gameScore["tagtext"] as! String 

gameScore["username"]gameScore["tagtext"]可以返回零值,当你说as! String as! String你说它将是一个string,它是零。

尝试像这样:

 let username = gameScore["username"] as? String let tagtext = gameScore["tagtext"] as? String 

你的错误是由于这个原因发生的,但是你的最终代码应该是这样的:

 @IBAction func readAction(sender: UIButton) { var query = PFQuery(className:"Tags") query.getObjectInBackgroundWithId("f3AXazT9JO") { (gameScore: PFObject?, error: NSError?) -> Void in let username = gameScore["username"] as? String let tagtext = gameScore["tagtext"] as? String println(username) println(tagtext) if error == nil && gameScore != nil { println(gameScore) } else { println(error) } } } 

因为getObjectInBackgroundWithId是asynchronous的。

您正试图从您的响应对象gameScore读取,但仍然是nil因为getObjectInBackgroundWithId是一个asynchronous方法,意味着它将在结束后返回结果。 把两条线放在处理程序中,并从那里开始。