繁体   English   中英

在特定时间从 UserDefaults 中删除保存的数据?

[英]Delete saved data form UserDefaults at a specific time?

我在 SwiftUI 中使用 UserDefaults 来保存来自多个变量的数据,并将它们用于显示一些日常信息的图表。 有没有办法删除或重置保存的数据表单 UserDefaults 以仅包含当天的数据表单? 比如每晚23:59删除数据。

@Published var waterGraph: Float = UserDefaults.standard.float(forKey: "waterGraph") {
        didSet {
            UserDefaults.standard.set(self.waterGraph, forKey: "waterGraph")
        }
    }

您真的需要在恰好 23:59 从您的 UserDefaults 中删除数据吗? 如果这样做,则必须运行可能非常复杂的后台任务。 另一个更简单的替代方法是在用户每次打开应用程序时清除 UserDefaults,如果您的 UserDefaults 数据已存储 24 小时。 在您的 UserDefaults 中存储一个名为“in24hours”的值,并将其值设置为距当前时间 24 小时。 在 appDelegate 的 didFinishLaunchingWithOptions 函数中,检查存储在 userDefaults“in24hours”中的日期,如果当前时间大于该变量中的时间,那么您可以在那里清除 userDefaults。 您可以随时设置“in24hours”变量(在 UserDefaults 中添加要删除的数据后)。 除了将“in24Hours”设置为当前时间和日期的 24 小时之外,您还可以将其设置为下一个日期的午夜。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM