这是我的代码.
PFUser.logInWithUsernameInBackground(email, password: password) { (user: PFUser!, error: NSError!) -> Void in
if user != nil {
PushNotication.parsePushUserAssign()
ProgressHUD.showSuccess("Welcome back, \(user[PF_USER_FULLNAME])!")
self.dismissViewControllerAnimated(true, completion: nil)
} else {
if let info = error.userInfo {
ProgressHUD.showError(info["error"] as! String)
}
}
}
这会导致错误,例如“条件绑定的初始化程序必须具有可选类型,而不是'[NSObject:AnyObject]’”
有谁知道解决方案?
最佳答案 error.userInfo不是Optional,它是[NSObject:AnyObject]类型,由编译器提示.如果让它不需要打开它,它永远不会是零.
你可以替换
if let info = error.userInfo {
ProgressHUD.showError(info["error"] as! String)
}
同
ProgressHUD.showError(error.userInfo["error"] as! String)
如果你确定该值将是一个字符串.
否则,应该安全地解开字典值并将其作为字符串向下转换.例:
if let errorString = error.userInfo["error"] as? String {
ProgressHUD.showError(errorString)
}