用Swift跟踪经过的时间

时间:2017-04-24 19:35:17

标签: ios swift timer storage

所以我是一个任务的倒数计时器,我想知道是否有办法存储已经过的时间,以便它可以记录在应用程序中。因此,例如evertyime,您使用倒数计时器,您将倒计时运行的时间存储为生命周期值。

  • 倒数计时器设定为10分钟
  • 计时器运行5分30秒,4分30秒 计时器剩余的秒数。
  • 存储经过的会话时间(5分30秒)的值 在应用程序中并添加到总计

如果重复这一组确切的说明,则总寿命值为11分钟。

如果有人能够指出我可以解释如何实现这些功能的资源方向,那将非常感激。

1 个答案:

答案 0 :(得分:0)

您可以使用多种方法来保存这样的数字 - 绝对最简单和最快的可能就是使用UserDefaults来存储/检索数字。这不完全是UserDefaults的预期用途,但如果您只是存储一个TimeInterval,则不会给您带来任何问题。

裸机实现看起来像这样:

 let interval: TimeInterval = 20 //replace with the time from your countdown timer
 UserDefaults.standard.set(interval, forKey: "totalTimeElapsed")

由于您需要将新时间添加到现有的已用时间,您可以执行以下操作:

 let newTimeElapsed: TimeInterval = 20 //replace with time from countdown timer
 let totalSoFar = UserDefaults.standard.double(forKey: "totalTimeElapsed") //will be 0 if it doesn't exist
 UserDefaults.standard.set(newTimeElapsed + totalSoFar, forKey: "totalTimeElapsed")

您可以执行此操作的其他标准方法是NSKeyedArchiverCore Data,但Core Data对于保留1个数字会是一个主要的过度杀伤。