使用 Swift 跟踪经过的时间
Tracking Elapsed Time with Swift
所以我有一个任务的倒数计时器,我想知道是否有一种方法可以存储已经过去的时间,以便可以将它记录在应用程序中。因此,例如,您每次使用倒数计时器时,都会将倒数时间 运行 存储为生命周期值。
- 倒计时设置为 10 分钟
- 计时器运行 5 分 30 秒,还有 4 分 30 秒
计时器剩余秒数。
- 存储经过的会话时间值(5 分 30 秒)
在应用程序中添加到总数
如果重复这组指令,则总生命周期值为 11 分钟。
如果有人能给我指出可以解释如何实现此类功能的资源方向,我们将不胜感激。
您有多种选择来保留这样的数字 - 绝对最简单和最快的可能只是使用 UserDefaults
到 store/retrieve 数字。这不完全是 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")
您可以执行此操作的其他标准方法是 NSKeyedArchiver
或 Core Data
,尽管 Core Data
对于坚持 1 个数字来说是大材小用。
所以我有一个任务的倒数计时器,我想知道是否有一种方法可以存储已经过去的时间,以便可以将它记录在应用程序中。因此,例如,您每次使用倒数计时器时,都会将倒数时间 运行 存储为生命周期值。
- 倒计时设置为 10 分钟
- 计时器运行 5 分 30 秒,还有 4 分 30 秒 计时器剩余秒数。
- 存储经过的会话时间值(5 分 30 秒) 在应用程序中添加到总数
如果重复这组指令,则总生命周期值为 11 分钟。
如果有人能给我指出可以解释如何实现此类功能的资源方向,我们将不胜感激。
您有多种选择来保留这样的数字 - 绝对最简单和最快的可能只是使用 UserDefaults
到 store/retrieve 数字。这不完全是 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")
您可以执行此操作的其他标准方法是 NSKeyedArchiver
或 Core Data
,尽管 Core Data
对于坚持 1 个数字来说是大材小用。