将数据保存在 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)
       }
     }          
}