我的代码如下:
if signupMode {
let user = PFUser()
user.username = emailTextField.text
user.email = emailTextField.text
user.password = passwordTextField.text
user.signUpInBackground(block: {
(success, error) in
if error != nil {
let displayErrorMessage = "Please try again later"
if let errorMessage = error.UserInfo["error"]? as String {
displayErrorMessage = errorMessage
}
self.createAlert(title: "Error", message: "Parse Error")
}
我一直在收到错误
"类型'错误'没有会员' userinfo"
我该怎么做才能解决这个问题?我正在使用Xcode 8
答案 0 :(得分:1)
通过你的剪断,无法确定error
是什么,并且它应该有一个名为UserInfo
的成员。请提供更多代码......
我认为它是NSError?在这种情况下,它将是error.userInfo
作为成员名称。 (看外壳)
除此之外,您的代码将失败编译,因为您声明了let displayErrorMessage
,但在if中对其进行了赋值。您需要将其更改为var displayErrorMessage
才能执行此操作。
试试这个:
user.signUpInBackgroundWithBlock {
(succeeded: Bool!, error: NSError!) -> Void in
if error == nil {
// Perform a segue, show a message or whatever you want
} else {
let errorString = error.userInfo["error"] as NSString
// Show the errorString somewhere and let the user try again.
}
}
答案 1 :(得分:0)
如果仍然出现此错误,请尝试以下代码。强制将包装错误作为NSError。
if let errorMessage = (error! as NSError).userInfo["error"] as? String {
displayErrorMessage = errorMessage
}