Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将经过的时间间隔添加到日期()_Ios_Objective C_Swift - Fatal编程技术网

Ios 将经过的时间间隔添加到日期()

Ios 将经过的时间间隔添加到日期(),ios,objective-c,swift,Ios,Objective C,Swift,我试图将经过的时间添加到Date()对象(它用于定时操作的resume按钮) 下面是代码的简历部分,负责计算更改后的startDate。我希望它将经过的时间间隔添加到开始日期 代码如下: print(startDate) let elapsed = resumeTime - startDate.timeIntervalSinceReferenceDate print(elapsed) startDate.addTimeInterval(elapsed) print(startDate) 这是我

我试图将经过的时间添加到Date()对象(它用于定时操作的resume按钮)

下面是代码的简历部分,负责计算更改后的
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 +0000
addTimeInterval
的定义是:

将时间间隔添加到此日期

这不正是我想要的吗?我是不是解释错了

注意,
resumeTime
是在点击暂停按钮时定义的。设置如下:

resumeTime = Date.timeIntervalSinceReferenceDate
谢谢

这是我在运行大约2分钟后暂停计时器约3秒时的输出

尽管如此,您的
运行时间是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

我认为您代码中的错误在于您从未再次设置
开始日期,因此您的
已用时间计算始终基于应用程序首次运行的时间,而不是自上次暂停以来所用的时间。

已用时间的输出是什么?我在阅读了您的答案后计算出来的,请参阅我添加的答案。我投票支持你,因为这几乎是我想要的。我不应该使用
startDate