Ios Swift-一个月后重置数据
我有一个应用程序可以汇总用户输入。正在存储此数据。我希望此用户数据在他开始使用应用程序的一个月后重置为0。一个月后,Ios Swift-一个月后重置数据,ios,swift,Ios,Swift,我有一个应用程序可以汇总用户输入。正在存储此数据。我希望此用户数据在他开始使用应用程序的一个月后重置为0。一个月后,开始日期显然应为数据重置之日 到目前为止,我已经: func checkIfClearData() { let startDate: Date = Date() var monthComponent = DateComponents() monthComponent.month = 1 let theCalendar = Calendar.curr
开始日期
显然应为数据重置之日
到目前为止,我已经:
func checkIfClearData() {
let startDate: Date = Date()
var monthComponent = DateComponents()
monthComponent.month = 1
let theCalendar = Calendar.current
let endDate = theCalendar.date(byAdding: monthComponent, to: startDate)
}
我卡住了。如何包含
currentDate
以及如何正确使用该函数,因为它每月只能调用一次?否则,我估计endDate
将增加,并且永远无法到达 当应用程序启动时,在UserDefaults中检查一个键(例如“startingDate”)
如果为nil,则将当前日期保存到该键
如果不是零,请阅读。比较保存的日期和今天的日期。如果经过的时间小于1个月,则像往常一样读取存储的数据。如果经过的时间大于等于1个月,请删除所有存储的数据,然后将今天的日期保存到注册表项UserDefaults以重新开始。使用以下方法比较startDate和endDate
if Date().timeIntervalSince(endDate) < 0 {
// endDate ahead
} else {
// endDate expired
}
用法-2每次应用程序在AppDelegate.swift中启动/进入前台时
func applicationDidBecomeActive(_ application: UIApplication) {
DataTimer.shared.check()
}
您也可以直接比较两个日期:(if Date()>endDate
)
DataTimer.shared.check()
func applicationDidBecomeActive(_ application: UIApplication) {
DataTimer.shared.check()
}