0

我是 iOS 新手。我想保存authentication token从 a 收到的信息REST API,以便在进一步的 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.

登录视图控制器

override func viewDidLoad(){
   super.viewDidLoad()

   if UserDefaults.standard.string(forKey: "auth_token") != nil { 
        self.performSegue(withIdentifier: "login_success", sender: self)
   }
}

但问题是即使在应用程序完全关闭后,我如何才能保留这个令牌?

编辑

我也尝试过UserDefaults在类的applicationWillTerminate方法中同步AppDelegate以确保但这甚至不起作用。

4

1 回答 1

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)
       }
     }          
}
于 2017-09-24T05:00:50.140 回答