Ios 使用UserDefaults保存数据的正确事件是什么?

Ios 使用UserDefaults保存数据的正确事件是什么?,ios,swift,saving-data,userdefaults,Ios,Swift,Saving Data,Userdefaults,我是ios新手。我有一个视图控制器和一些数据对象。我想在视图控制器消失之前将数据保存到UserDefaults。在安卓系统中,我使用了“On-stop”事件等等。ios中的正确事件是什么 我考虑过每次数据更改时保存数据(didSet),但我的数据是50-100个元素的数组,所以每次更改时保存数据可能不是一个好主意。另一方面,我希望我的数据无论如何都能被保存——如果应用程序被破坏等等 您需要在视图控制器中重写此函数 override func viewDidDisappear(_ animated

我是ios新手。我有一个视图控制器和一些数据对象。我想在视图控制器消失之前将数据保存到UserDefaults。在安卓系统中,我使用了“On-stop”事件等等。ios中的正确事件是什么


我考虑过每次数据更改时保存数据(didSet),但我的数据是50-100个元素的数组,所以每次更改时保存数据可能不是一个好主意。另一方面,我希望我的数据无论如何都能被保存——如果应用程序被破坏等等

您需要在视图控制器中重写此函数

override func viewDidDisappear(_ animated: Bool) {
// save data here
}

您可以在代码中使用此功能

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(true)
    UserDefaults.standard.set(true, forKey: "example")
}
如果应用程序将终止:例如,用户关闭应用程序 在
AppDelegate中使用此功能

func applicationWillTerminate(_ application: UIApplication) {
     bgTask = application.beginBackgroundTask(withName:"Flink_logOut", expirationHandler: {() -> Void in
         // Do something to stop our background task or the app will be killed
     }
     // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}

您需要覆盖函数viewdiddemouse,并尝试将数据保存到用户默认值