SwiftyTimer
NSTimer
提供现代 Swifty API
为 SwifyTimer 允许您使用便利的闭包语法立即安排延时和重复定时器。是时候摆脱 Objective-C 附件了。
阅读更多关于该项目信息的 Swifty APIs: NSTimer。
使用方法
您可以使用 Timer.every
和 Timer.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 文件。