如何找到NSTimer剩余的时间间隔

时间:2015-10-18 13:03:22

标签: swift nstimer nstimeinterval

我设置了NSTimer.scheduledTimerWithTimeInterval方法,每20分钟有一个间隔。我希望能够找出应用程序进入后台模式时剩余的时间。我如何知道间隔剩余多少时间?

由于

2 个答案:

答案 0 :(得分:5)

您可以访问NSTimer的fireDate,它会告诉您计时器什么时候再次开火。

现在与fireDate之间的差异是您可以使用NSDate's timeIntervalSinceDate API计算的时间间隔。

E.G。类似的东西:

let fireDate = yourTimer.fireDate
let nowDate = NSDate()
let remainingTimeInterval = nowDate.timeIntervalSinceDate(fireDate)

答案 1 :(得分:0)

使用@Michael Dautermann的解决方案时,正常的Swift类型TimerDate我注意到,他的解决方案会给你一个负值,例如:

let fireDate = yourTimer.fireDate
let nowDate = Date()
let remainingTimeInterval = nowDate.timeIntervalSinceDate(fireDate)
//above value is negative e.g. when the timers interval was 2 sec. and you 
//check it after 0.5 secs this was -1,5 sec.

当您在Timer.scheduledTimer(timeInterval:,target:,selector:,userInfo:,repeats:)函数中插入负值时,会导致计时器设置为0.1毫秒,而Documentation of the Timer会提到它。

所以在我的情况下,我必须使用nowDate.timeIntervalSinceDate(fireDate)结果的负值:-nowDate.timeIntervalSinceDate(fireDate)