Swift 使用Denit保存到数据库

Swift 使用Denit保存到数据库,swift,Swift,非常年轻的德夫,请原谅我的问题,但我只是好奇。我有一个本地数据库,我正在考虑使用ViewModel来存储信息,这些信息只有在用户点击save按钮时才会被保存 但是,如果他们将应用程序发送到后台,并且忘记了应用程序,我可以使用Denit来保存数据库吗 现在不考虑这种情况下的用户体验,我只想知道是否使用过这种方法。应用程序的生命周期是不可预测的,你不能相信会调用Denit 当你的应用程序被发送到后台时,它在冻结前有几秒钟的时间运行,如果用户在一段时间内不使用它,它将被静默地终止,并且不会调用dein

非常年轻的德夫,请原谅我的问题,但我只是好奇。我有一个本地数据库,我正在考虑使用ViewModel来存储信息,这些信息只有在用户点击save按钮时才会被保存

但是,如果他们将应用程序发送到后台,并且忘记了应用程序,我可以使用Denit来保存数据库吗


现在不考虑这种情况下的用户体验,我只想知道是否使用过这种方法。

应用程序的生命周期是不可预测的,你不能相信会调用Denit

当你的应用程序被发送到后台时,它在冻结前有几秒钟的时间运行,如果用户在一段时间内不使用它,它将被静默地终止,并且不会调用
deinit

如果用户杀死了应用程序,我认为也不会调用
deinit

正如评论中所建议的那样,您应该倾听生命周期事件并对其作出反应。它将根据应用程序的设置方式进行更改:

UIKit+UIApplication委托:实现

UIKit+场景代理:实现


全速界面:观察

应用程序生命周期的变化是不可预测的,你不能相信会调用deinit

当你的应用程序被发送到后台时,它在冻结前有几秒钟的时间运行,如果用户在一段时间内不使用它,它将被静默地终止,并且不会调用
deinit

如果用户杀死了应用程序,我认为也不会调用
deinit

正如评论中所建议的那样,您应该倾听生命周期事件并对其作出反应。它将根据应用程序的设置方式进行更改:

UIKit+UIApplication委托:实现

UIKit+场景代理:实现


全速界面:观察

的变化,我甚至从未使用过
deinit
。听AppDelegate/SceneDelegate方法可能更好\_(ツ)_/“‘不能保证会调用
deinit
。除了释放对象所持有的资源之外,不应该依赖它。我甚至从未使用过
deinit
。听AppDelegate/SceneDelegate方法可能更好一些。”\_(ツ)_/''不保证会调用
deinit
。除了释放对象所持有的资源之外,不应依赖它。如果应用程序被终止,则不会调用
deinit
(这在iOS上最常见)。在应用程序可以正常终止的平台上(macOS、Linux),
deinit
通常也不会被调用。如果应用程序被终止,则不会调用
deinit
(这在iOS上最常见)。在应用程序可以正常终止的平台上(macOS、Linux),通常也不会调用
deinit