BUCTimer 3.0.0

BUCTimer 3.0.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2017年10月
SwiftSwift 版本4.0
SPM支持 SPM

Michael Buckley 维护。



BUCTimer 3.0.0

  • 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 许可证 下发布。