如何在每天开始时重置变量?

时间:2016-07-25 19:49:15

标签: swift nsdate nscalendar

我有一个变量,用于跟踪我想在每天开始时重置的用户统计信息。我怎样才能做到这一点? 由于不允许应用程序在后台运行,似乎每次应用程序处于活动状态时我都必须进行检查,但我不知道如何重置我只有一次的变量。这是我想要使用的功能:

    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
    }
}

我想使用此函数来检查应用程序何时启动,但问题是应用程序可以每天多次启动。如果用户正在使用该应用程序,或者当应用程序变为活动状态或当天第一次启动时,如何在一天开始时仅重置一次变量? 感谢

1 个答案:

答案 0 :(得分:6)

您可以在用户中存储默认值。

所以流程如下:

  1. 当应用程序启动或变为活动状态时,您可以检查用户默认值中变量的值是否与当天相同(例如25/07/2016),然后不执行任何操作。
  2. 如果值不同,则使用当前日期更新用户默认值中的值。
  3. 如果应用程序正在运行且日期已更改,您可以通过订阅此通知来更新变量的值: UIApplicationSignificantTimeChangeNotification