我想构建一个带有解析的简单注销按钮,但当前用户没有得到 nil。
PFUser.logOut()
var currentUser = PFUser.currentUser() // this should be nil but it isn't :(
print(currentUser)
我也尝试过:
PFUser.logOutInBackground()
var currentUser = PFUser.currentUser() // this is also not nil :(
因此,当我打印 currentUser 时,它并不像应有的那样为零。是:
Optional(<PFUser: 0x7f8d99dd2320 , objectId: new, localId: local_58d62becf7a6f1dc> {
})
所以我认为该应用程序正在创建一个新用户?!
尝试在 AppDelegate.swift 文件中注释掉以下代码行 -
PFUser.enableAutomaticUser()
enableAutomaticUser()
拨打PFUser.logOut()
后,将会以匿名用户身份登录,匿名用户的用户名是nil
。
在
didFinishLaunchingWithOptions
方法中检查 AppDelegate 中是否有 currentUser
let user = PFUser.currentUser()
if user == nil
{
// present loginViewController
}
else
{
print("user is \(user?.username)") // <--- who is currently
// show any viewcontroller
}
退出应用程序后,您的注销按钮应将用户发送回loginViewController。 示例:
@IBAction func Logout(sender:UIButton)
{
PFUser.Logout()
let LoginViewController = storyboard.instantiateViewControllerWithIdentifier("storyBoardID")
self.presentViewController(LoginViewController, animated: true, completion: nil)
}
因此,从登录视图控制器中,他们可以使用其凭据重新登录到您的应用程序,然后 currentUser 将不会返回 nil
将函数(注销)的返回类型设置为可选类型。只有 options 具有保持 nil 值的能力。 这是我想告诉你的例子
func loggedOut() -> Int? {
// check you conditions here ex:
if score > 0 {
return score
} else {
return nil
}
}