SwiftyTimer 2.1.0

SwiftyTimer 2.1.0

测试已测试
Lang语言 SwiftSwift
许可 MIT
发布上次发布2018年10月
SPM支持 SPM

Radek PietruszewskiMacbook 维护。



  • 作者:
  • Radek Pietruszewski

SwiftyTimer

Platforms CI Status CocoaPods Carthage compatible Swift version

NSTimer 提供现代 Swifty API

SwifyTimer 允许您使用便利的闭包语法立即安排延时和重复定时器。是时候摆脱 Objective-C 附件了。

阅读更多关于该项目信息的 Swifty APIs: NSTimer

使用方法

您可以使用 Timer.everyTimer.after 容易地安排重复和不重复的定时器(重复和延迟)

Timer.every(0.7.seconds) {
    statusItem.blink()
}

Timer.after(1.minute) {
    println("Are you still here?")
}

您可以使用以下直观的助手指定时间间隔

100.ms
1.second
2.5.seconds
5.seconds
10.minutes
1.hour
2.days

您可以使用方法引用而不是闭包

Timer.every(30.seconds, align)

手动调度

如果您想要创建一个不带调度的计时器对象,请使用 new(after:)new(every:)

let timer = Timer.new(every: 1.second) {
    println(self.status)
}

(这应该定义为初始化器,但 Foundation中的一个bug 阻止了这一行为)

调用 start() 来安排使用 new 创建的计时器。您可以可选地传递运行循环和运行循环模式

timer.start()
timer.start(modes: .defaultRunLoopMode, .eventTrackingRunLoopMode)

失效

如果您想让某些条件下的重复计时器失效,可以在传递的闭包中取 Timer 参数

Timer.every(5.seconds) { (timer: Timer) in
    // do something
    
    if finished {
        timer.invalidate()
    }
}

安装

注意:如果您正在运行 Swift 2,请使用 SwiftyTimer v1.4.1

CocoaPods

如果您正在使用 CocoaPods,只需将此行添加到您的 Podfile 中

pod 'SwiftyTimer'

通过在终端运行此命令进行安装

pod install

然后在您使用库的所有文件中导入该库

import SwiftyTimer

Carthage

只需将其添加到您的 Cartfile 中

github "radex/SwiftyTimer"

手动

只须简单地将 Sources/SwiftyTimer.swift 复制到您的 Xcode 项目的源代码中。

更多相似内容

如果你喜欢 SwiftyTimer,还可以看看 SwiftyUserDefaults,它在 NSUserDefaults上也采用了同样的方法。

你也许还会对我的博客文章感兴趣,这些文章解释了这些库背后的设计过程。

贡献

如果你有任何评论、投诉或改进的想法,请随时提交一个 issue 或 pull request。

作者和许可

Radek Pietruszewski

SwiftyTimer 采用 MIT 许可证。有关更多信息,请参阅 LICENSE 文件。