DispatchTimer

DispatchTimer 是一个基于 GCD 的定时器,其 API 与 Timer (原名 NSTimer) 类似。 DispatchTimer 相比 Timer 的最大优势在于它不需要 RunLoop 就能触发,这意味着你可以在后台线程中使用 DispatchTimer 而没有任何问题。 DispatchTimer 的缺点是你需要保留对它的引用,否则它不会触发。

安装

要使用 Swift Package Manager 集成 DispatchTimer,请将依赖项添加到你的 Package.swift 文件中

dependencies: [
  .package(url: "https://github.com/shareup/dispatch-timer.git", from: "3.0.0"),
],

用法

let oneoff = DispatchTimer(.milliseconds(50), block: { print("fired") })

let repeating = DispatchTimer(
  .milliseconds(50),
  repeat: true,
  block: { print("fired") }
)

let fireAt = DispatchTimer(
    fireAt: DispatchTime.now() + .milliseconds(50),
    block: { print("fired") }
)

许可

DispatchTimer 的许可是标准的 MIT 许可。你可以在 LICENSE 文件中找到它。