持久化定时器

持久化定时器和秒表,确保状态的无缝恢复。

示例

用法

使用您选择的数据源实例化 PersistableTimer (UserDefaults 或内存,用于测试和预览目的)

import PersistableTimer

let timer = PersistableTimer(dataSourceType: .inMemory)
let timer = PersistableTimer(dataSourceType: .userDefaults(.standard))
let timer = PersistableTimer(dataSourceType: .userDefaults(.standard), updateInterval: 0.5)

启动定时器

启动秒表或倒计时定时器。 可选地,即使已有定时器在运行,也可强制启动新定时器。

try await timer.start(type: .stopwatch)
// Start a countdown timer with a duration of 100 seconds
try await timer.start(type: .timer(duration: 100))

暂停、恢复和完成

暂停和恢复正在运行的定时器,或标记为完成

try await timer.pause()
try await timer.resume()
try await timer.finish(isResetTime: false)

恢复定时器状态

在应用重启后恢复定时器状态

try timer.restore()

定时器更新

使用 timeStream 订阅定时器更新

for await timeState in timer.timeStream {
    // Update your UI with the current timeState
    print(timerState.time)
}