在SwiftUI中每24小时将变量值重置为0

问题描述

我正在使用带有SwiftUI的UserDefaults来保存多个变量中的数据,并将这些值用于图形。我的目标是仅显示用户的日常进度,因此我需要每天从UserDefaults中删除存储的数据或将变量值重置为0。 我认为Apple fitness应用程序与每天都会重置的“活动环”执行类似的操作,但我不知道该如何实现。每一个帮助将不胜感激。

我的代码

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

解决方法

可以采用任何不同的方法,这取决于您的数据如何“生存”,而没有更多的信息我们就无法具体说明。

一种选择可能是使您的waterGraph对象依赖于日期WaterGraph(date: Date),我认为Apple会这样做。

另一种选择是查看该视图时查看是否需要新数据。

.onAppear(perform: {
            if lastUpdatedDate != todaysDate{
                resetData()
                lastUpdatedDate = todaysDate
            }
        })