问题描述
我正在使用带有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
}
})