所以我是一个任务的倒数计时器,我想知道是否有办法存储已经过的时间,以便它可以记录在应用程序中。因此,例如evertyime,您使用倒数计时器,您将倒计时运行的时间存储为生命周期值。
如果重复这一组确切的说明,则总寿命值为11分钟。
如果有人能够指出我可以解释如何实现这些功能的资源方向,那将非常感激。
答案 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")
您可以执行此操作的其他标准方法是NSKeyedArchiver
或Core Data
,但Core Data
对于保留1个数字会是一个主要的过度杀伤。