如何在每天开始时重置变量?
How do I reset a variable at the start of each day?
我有一个变量可以跟踪我想在每天开始时重置的用户统计信息。我怎样才能做到这一点?
由于不允许应用程序在后台 运行 ,似乎每次应用程序处于活动状态时我都必须进行检查,但我不知道如何重置我只有一次的变量。这是我想使用的功能:
let beginingOfDay = NSCalendar.currentCalendar().startOfDayForDate(NSDate())
func resetCurrentTime(){
// Date comparision to compare current date and begining of the day.
let dateComparisionResult:NSComparisonResult = NSDate().compare(beginingOfDay)
if dateComparisionResult == NSComparisonResult.OrderedDescending || dateComparisionResult == NSComparisonResult.OrderedSame {
// Current date is greater or equal to end date.
currentTime = 0 //reset the time tracker
}
}
我想使用此功能来检查应用程序何时启动,但问题是该应用程序一天可能会启动多次。如果用户正在使用该应用程序,或者当应用程序激活或当天首次启动时,我如何才能在一天开始时仅重置我的变量一次?
谢谢
您可以将此值存储在用户默认值中。
所以流程如下:
- 当应用程序启动或激活时,您检查用户默认值中的变量值是否与当天相同(例如 25/07/2016),然后什么都不做。
- 如果值不同,则用当前日期更新用户默认值中的值。
如果应用程序 运行 并且日期已更改,您可以通过订阅此通知来更新变量的值:
UIApplicationSignificantTimeChangeNotification
我有一个变量可以跟踪我想在每天开始时重置的用户统计信息。我怎样才能做到这一点? 由于不允许应用程序在后台 运行 ,似乎每次应用程序处于活动状态时我都必须进行检查,但我不知道如何重置我只有一次的变量。这是我想使用的功能:
let beginingOfDay = NSCalendar.currentCalendar().startOfDayForDate(NSDate())
func resetCurrentTime(){
// Date comparision to compare current date and begining of the day.
let dateComparisionResult:NSComparisonResult = NSDate().compare(beginingOfDay)
if dateComparisionResult == NSComparisonResult.OrderedDescending || dateComparisionResult == NSComparisonResult.OrderedSame {
// Current date is greater or equal to end date.
currentTime = 0 //reset the time tracker
}
}
我想使用此功能来检查应用程序何时启动,但问题是该应用程序一天可能会启动多次。如果用户正在使用该应用程序,或者当应用程序激活或当天首次启动时,我如何才能在一天开始时仅重置我的变量一次? 谢谢
您可以将此值存储在用户默认值中。
所以流程如下:
- 当应用程序启动或激活时,您检查用户默认值中的变量值是否与当天相同(例如 25/07/2016),然后什么都不做。
- 如果值不同,则用当前日期更新用户默认值中的值。
如果应用程序 运行 并且日期已更改,您可以通过订阅此通知来更新变量的值:
UIApplicationSignificantTimeChangeNotification