将数据保存在 iOS 个应用中
Persisting data in iOS app
我是 iOS 的新手。我想保存从 REST API
收到的 authentication token
,以便在以后的 api 调用中使用,而无需登录。目前我正在使用 UserDefaults
来存储这个令牌。除非应用程序完全关闭,否则此令牌可以正常工作。再次重新启动应用程序会将我带到登录屏幕。
像这样保存 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)
}
}
但问题是即使在应用程序完全关闭后我如何保留此令牌?
编辑
我也曾尝试在 AppDelegate
class 的 applicationWillTerminate
方法中同步 UserDefaults
只是为了确保,但这甚至不起作用。
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)
}
}
}
我是 iOS 的新手。我想保存从 REST API
收到的 authentication token
,以便在以后的 api 调用中使用,而无需登录。目前我正在使用 UserDefaults
来存储这个令牌。除非应用程序完全关闭,否则此令牌可以正常工作。再次重新启动应用程序会将我带到登录屏幕。
像这样保存 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)
}
}
但问题是即使在应用程序完全关闭后我如何保留此令牌?
编辑
我也曾尝试在 AppDelegate
class 的 applicationWillTerminate
方法中同步 UserDefaults
只是为了确保,但这甚至不起作用。
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)
}
}
}