【发布时间】:2015-05-13 13:47:21
【问题描述】:
我正在使用 Xcode、Swift 和 Parse。当我尝试注销 PFUser 时,我永远不会得到 nil 的回报。
在应用程序的这一部分,viewController 只是显示几个按钮,一个是登录。一个是让用户注册。一种是发送用户更改详细信息,一种是简单的注销。
注销时重要的两个代码是;
@IBAction func logout(sender: AnyObject) {
PFUser.logOut()
var currentUser = PFUser.currentUser()
self.displayAlert("You are now logged out", error: "")
println(currentUser!)
}
@IBAction func changeDetails(sender: AnyObject) {
var currentUser = PFUser.currentUser()
println(currentUser!)
if currentUser != nil {
let nextView30 = self.storyboard?.instantiateViewControllerWithIdentifier("changeDetails") as! changeUserDetailsViewController
self.navigationController?.pushViewController(nextView30, animated: true)
} else {
self.displayAlert("Please log in", error: "")
}
}
一旦代码运行并注销,无论 currentUser 被读取到哪里,我都会得到以下类型的响应,而不是 nil。下一个 ViewController 被操作,如果没有 usr 登录,这不应该发生。
PFUser:0x37018fbc0,objectId:新,localId:local_3b5eb7453f9af5ed { }
我做错了什么还是这是标准? 如果正确,如何返回无用户登录?
谢谢
【问题讨论】:
-
也许你已经启用了
automatic user。你的代码中有这样的东西吗:PFUser.enableAutomaticUser()? -
我已经检查了自动用户。它不在那里。我将用户登录为 PFUser.logInWithUsernameInBackground(username.text, password:password.text) { (user: PFUser?, signupError: NSError?) -> Void in This is running through a login button
-
您是否尝试检查 PFUser.currentUser().username != nil ?它对我很有效。
-
伙计,看来你已经解开了谜团。我将 var currentUser = PFUser.currentUser() 更改为 var currentUser = PFUser.currentUser()?.username 并返回 nil 我真诚的感谢。
-
它看起来只是一个 hacky 解决方法,而不是文档化的解决方案。它们显示在docs 中,您应该针对 currentUser 对象检查 nil。如何确保它在未来以同样的方式工作?
标签: ios xcode swift parse-platform pfuser