我是iOS新手。我想保存从authentication token
收到的REST API
,以便在不需要登录的情况下用于进一步的api通话。目前我使用UserDefaults
来存储此令牌。除非app完全关闭,否则此令牌工作正常。重新启动应用程序需要我登录屏幕。
像这样保存token
UserDefaults.standard.setValue(authToken, forKey: "auth_token")
UserDefaults.standard.synchronize() // Now this call is derpecated. Framework handles this call at proper places.
LoginViewController
override func viewDidLoad(){
super.viewDidLoad()
if UserDefaults.standard.string(forKey: "auth_token") != nil {
self.performSegue(withIdentifier: "login_success", sender: self)
}
}
但问题是即使在应用程序完全关闭后,如何才能持久保存此令牌?
编辑
我还尝试在UserDefaults
课程的applicationWillTerminate
方法中同步AppDelegate
只是为了确保,但即使不起作用。
答案 0 :(得分:0)
UserDefaults没有错。只需将触发segue调用包装在主队列中就可以正常工作。
override func viewDidLoad() {
super.viewDidLoad()
if UserDefaults.standard.string(forKey: "auth_token") != nil {
DispatchQueue.main.async {
self.performSegue(withIdentifier: "login_success", sender: self)
}
}
}