Swift定时器timeInterval属性解析

在 Swift 中,定时器(Timer)是个挺常用的组件,能让你在指定时间后执行某个任务。最关键的属性之一就是timeInterval,它控制定时器触发回调的时间间隔。这个属性的值一般是通过TimeInterval类型来设置的,它其实是Double的别名,表示秒数。比如,你可以设置TimeInterval(5)表示 5 秒的时间间隔。

创建定时器时,可以用Timer.scheduledTimer(withTimeInterval:repeats:block:)方法,传入时间间隔、是否重复执行的标志,以及执行的代码块。如果你想让定时器每两秒执行一次,可以这样写:

let timeInterval = TimeInterval(2) // 2 秒间隔
let timer = Timer.scheduledTimer(withTimeInterval: timeInterval, repeats: true) { _ in
  print("定时器触发")
}
RunLoop.main.add(timer, forMode: .common)

不过,timeInterval的设置并不保证定时器会严格按照你设定的时间触发,实际触发的时间会有小小的延迟。这是因为RunLoop和其他系统活动会影响定时器的精确度。如果你需要更精确的控制,可以考虑使用 GCD 定时器(DispatchSource Timer)。

有几点使用timeInterval时需要注意:

- timeInterval必须是正数,设置为 0 时定时器会尽量快速地执行,但不保证连续性。 - 设置过小的时间间隔会影响性能,尤其是当你有多个定时器时。

Timer是一个好用的工具,适用于动画、轮询、倒计时等场景。如果你能灵活运用timeInterval,能有效提升你应用的用户体验哦。

zip 文件大小:511.06KB