我正在尝试将经过的时间添加到Date()对象(用于定时操作的简历按钮)。
下面是负责计算修改后的startDate的代码的简历部分。我希望它能将elapsed TimeInterval添加到startDate中。
这是代码:
print(startDate)
let elapsed = resumeTime - startDate.timeIntervalSinceReferenceDate
print(elapsed)
startDate.addTimeInterval(elapsed)
print(startDate)这是当我在运行时大约2分钟后暂停计时器大约3秒时的输出。
输出:
2016-11-17 08:24:15 +0000
110.831687986851
2016-11-17 08:26:06 +0000第二个印刷日期应该更像是:
2016-11-17 08:24:18 +0000addTimeInterval的定义是:
向此日期添加一个TimeInterval。
这不正是我想要的吗?我解释得不对吗?
注意,resumeTime是在点击暂停按钮时定义的。它的设置如下:
resumeTime = Date.timeIntervalSinceReferenceDate谢谢。
发布于 2016-11-17 08:57:56
这是当我在运行时大约2分钟后暂停计时器大约3秒时的输出。
虽然,您的elapsed时间是2分钟。
请确保在正确的位置开始运行,还确保这一行生成所需的时间戳:
resumeTime = Date.timeIntervalSinceReferenceDate下面是与您的代码非常相似的代码示例,addTimeInterval工作得很好。
let resume = Date().timeIntervalSinceReferenceDate + 2
print(startDate)
let elapsed = resume - startDate.timeIntervalSinceReferenceDate
print(elapsed)
startDate.addTimeInterval(elapsed)
print(startDate)输出
2016-11-17 08:53:34 +0000
2.00815904140472
2016-11-17 08:53:36 +0000发布于 2016-11-17 09:00:30
我认为您的代码中的错误是您再也没有设置startDate,所以您的elapsed计算总是基于应用程序第一次运行的时间,而不是上次暂停之后的时间。
https://stackoverflow.com/questions/40649647
复制相似问题