我正在学习使用Swift的StopWatch项目。终极应用是这样的:
但是,定义类stopWatch时会出现问题。
为什么会出现" - "之前" startTime"?" - startTime"之间的区别是什么?和" startTime"?
我还没有在NSDate类参考文档中找到这个。另外,当我删除" - "时,最终的应用程序没有区别。
代码在这里:
类秒表{
private var startTime: NSDate?
var elapsedTime: NSTimeInterval {
if let startTime = self.startTime {
return -startTime.timeIntervalSinceNow
} else {
return 0
}
}
答案 0 :(得分:0)
属性timeIntervalSinceNow
正是这样:从现在起到该日期为止的时间间隔(秒)(在本例中为startTime
)。假设startTime
是未来15秒内的日期,那应该给你+15秒。
但是你的应用是一个秒表:startTime
是过去的日期(即你开始计时器的那一刻)所以timeIntervalSinceNow
可能会给你负秒数,因为您正在计算“时间倒流”(即,启动现在并计算直到某个日期过去)。这就是为什么你需要减号:这样你就可以获得从开始到现在的(正)秒数。