如何找到 NSTimer 剩余的时间间隔
How do I find the time interval remaining from NSTimer
我设置了一个 NSTimer.scheduledTimerWithTimeInterval
方法,每 20 分钟间隔一次。我希望能够找出当应用程序进入后台模式时还剩下多少时间。我如何知道间隔还剩多少时间?
谢谢
您可以访问 NSTimer 的 fireDate
,它会告诉您计时器何时再次启动。
现在和 fireDate
之间的区别是您可以使用 NSDate's timeIntervalSinceDate
API.
计算的间隔
类似于:
let fireDate = yourTimer.fireDate
let nowDate = NSDate()
let remainingTimeInterval = nowDate.timeIntervalSinceDate(fireDate)
当使用@Michael Dautermann 的解决方案与正常 Swift 类型 Timer
和 Date
我注意到,他的解决方案会给你一个负值,例如:
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)
我设置了一个 NSTimer.scheduledTimerWithTimeInterval
方法,每 20 分钟间隔一次。我希望能够找出当应用程序进入后台模式时还剩下多少时间。我如何知道间隔还剩多少时间?
谢谢
您可以访问 NSTimer 的 fireDate
,它会告诉您计时器何时再次启动。
现在和 fireDate
之间的区别是您可以使用 NSDate's timeIntervalSinceDate
API.
类似于:
let fireDate = yourTimer.fireDate
let nowDate = NSDate()
let remainingTimeInterval = nowDate.timeIntervalSinceDate(fireDate)
当使用@Michael Dautermann 的解决方案与正常 Swift 类型 Timer
和 Date
我注意到,他的解决方案会给你一个负值,例如:
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)