测试已测试 | ✓ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017年10月 |
SwiftSwift 版本 | 4.0 |
SPM支持 SPM | ✗ |
由 Michael Buckley 维护。
BUCTimer 是一个基于 GCD 的原生 Swift 定时器。定时器可以从任何线程中进行调度,即使该线程没有 runloop 也可以在任意队列上执行代码。定时器可以被暂停、停止和重新启动。
使用 BUCTimer 很简单。创建一个定时器对象并调用 start()
。
import BUCTimer
let timer = Timer(milliseconds: 100, repeats: 0, queue: dispatch_get_main_queue(),
{
timer in
// Code to be called when the timer fires
})
timer?.start()
还有初始器允许您指定秒和纳秒的间隔。如果间隔大于 292 年,初始化器将会失败。
如果您将重复参数指定为 0 或 1,则定时器将在停止前仅触发一次。如果您指定一个更大的数字,则定时器将在停止前触发这么多次。如果您指定一个负数,则定时器将无限期重复,直到暂停或停止。因此,定时器作为参数传递给您的完成处理程序,以便您在不再需要时停止定时器。
import BUCTimer
let timer = Timer(milliseconds: 100, repeats: -1, queue: dispatch_get_main_queue(),
{
timer in
var stopTimer = false
// Code to be called when the timer fires, and which may set stopTimer to true
if stopTimer
{
timer.stop()
}
})
timer?.start()
可以通过调用 pause()
方法来暂停定时器。下次调用该定时器的 start()
时,它将从上次停止的地方继续。例如,如果您有一个 2 秒间隔的定时器,并且您在调用 start()
一秒后调用 pause()
,则定时器将在您下次调用该定时器的 start()
的一秒后触发。
相比之下,调用 stop()
将重置定时器。如果您在具有两秒间隔的定时器上调用 stop()
,则在您下次调用该定时器的 start()
后,定时器将在两秒后触发。
您可以在暂停的定时器上调用 stop()
来重置它。
BUCTimer 在 MIT 许可证 下发布。