SwiftyTimer时间辅助符完全清单:从100.ms到2.days的人话式时间表达 📅 2026/8/26 15:39:35 SwiftyTimer时间辅助符完全清单从100.ms到2.days的人话式时间表达【免费下载链接】SwiftyTimerSwifty API for NSTimer项目地址: https://gitcode.com/gh_mirrors/sw/SwiftyTimerSwiftyTimer 是一个为 NSTimer 打造人话 API的开源 Swift 库它最核心的亮点就是一套从100.ms到2.days的完整时间辅助符time helpers在代码里像说话一样写时间再也不用心算1小时等于多少秒。本文给出这份时间辅助符的完全清单以及最快上手的用法指南。Swift NSTimer 的痛点为什么不能直接写 3.minutes原生 NSTimer 的时间参数只认秒这个数字写定时器时要么套一堆乘除要么靠注释提醒// 传统写法3 * 60 是什么没人知道 Timer.scheduledTimer(withTimeInterval: 3 * 60, repeats: true) { _ in ... }SwiftyTimer 用 Swift 的属性扩展把每个数字都变成了会说话的时间同一逻辑变成// SwiftyTimer 写法一眼看懂 Timer.every(3.minutes) { ... }这就是它被称为Swifty API的原因——把 Objective-C 时代的繁琐语法换成接近自然语言的表达。时间辅助符完全清单8 种写法一张表所有辅助符都由 SwiftyTimer.swift 文件末尾的Double扩展实现见第 118-134 行本质是自动换算成秒。完整清单如下写法含义换算成秒100.ms100 毫秒0.11.3.milliseconds1.3 毫秒0.00131.second1 秒12.5.seconds2.5 秒2.51.minute1 分钟601.5.minutes1.5 分钟901.hour1 小时36000.5.day半天432002.days2 天172800 三个使用要点单数复数都能写ms/milliseconds/millisecond、second/seconds等三种拼法全部可用读起来顺就行支持小数0.7.seconds、2.5.minutes这类写法完全合法适合做动画节奏控制本质是 Double 扩展所以任何Double类型变量都能直接挂上这些属性SwiftyTimer 安装教程三种方式任选其一方式一CocoaPods在 Podfile 中加一行然后执行pod installpod SwiftyTimer配置细节可参考 SwiftyTimer.podspec当前版本 2.1.0支持 iOS 8 / macOS 10.9 / tvOS 9 / watchOS 2。方式二Carthage在 Cartfile 中加入项目即可自动构建。方式三手动集成最快整个库只有一个源文件Sources/SwiftyTimer.swift直接把它拖进 Xcode 工程就能用零依赖、零配置。安装完成后在文件顶部import SwiftyTimer即可解锁全部时间辅助符。核心 API 用法after 与 every 两大定时器SwiftyTimer 给Timer扩展了两个最常用的类方法源码见 SwiftyTimer.swift 第 27-114 行⏰ 延时执行Timer.after只触发一次Timer.after(1.minute) { print(Are you still here?) } 重复执行Timer.every按固定间隔循环Timer.every(0.7.seconds) { statusItem.blink() }小技巧闭包也可以换成方法引用Timer.every(30.seconds, align)这种写法同样成立代码更少一层嵌套。进阶手动创建定时器与精确停表需要延迟启动或动态控制时用new系列方法创建未上膛的定时器再手动start()let timer Timer.new(every: 1.second) { ... } // 稍后想启动时 timer.start() // 还可以指定 RunLoop 模式 timer.start(modes: .defaultRunLoopMode, .eventTrackingRunLoopMode) 停止循环定时器只需在闭包里拿到 timer 自己调用invalidate()Timer.every(5.seconds) { (timer: Timer) in if finished { timer.invalidate() } }项目结构速览核心源码只有 134 行想深入阅读的话仓库结构非常清爽关键文件一览核心源码Sources/SwiftyTimer.swiftTimer 扩展 时间辅助符全部逻辑就在这 134 行里SPM 配置Package.swiftCocoaPods 配置SwiftyTimer.podspec官方测试用例SwiftyTimerTests/SwiftyTimerTests/main.swift版本历史CHANGELOG.md测试文件里对每个辅助符都做了断言校验例如1.minute 60.0、2.days 172_800可以直接跑一遍验证换算是否精确。总结记住 3 点用好 SwiftyTimer时间全部人话化100.ms、2.5.seconds、1.hour、2.days数字后面直接跟单位两个 API 覆盖 90% 场景延时用after循环用every手动控制用newstart集成成本极低单文件源码、零依赖拖进项目即插即用下次再写定时器时试试把3 * 60换成3.minutes——代码的可读性往往就体现在这些人话细节里。【免费下载链接】SwiftyTimerSwifty API for NSTimer项目地址: https://gitcode.com/gh_mirrors/sw/SwiftyTimer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考