Swift 中,如何重复执行一个任务?

79 阅读1分钟
  • 三种方法
  1. Timer
  2. GCD
  3. Combine

Timer 定时器

生成了一个 Timer 并开启它,不需要其他操作
Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { timer in

    print("执行定时任务")
}

一般我会在 deinit 析构函数中将它销毁,避免内存泄漏

deinit {
    timer?.invalidate()
}

也可以自己创建 Timer 对象,然后把它绑定到 Runloop 中

let timer = Timer(timeInterval: 1, repeats: true, block: { timer in
    print("我还活着")
})
RunLoop.current.add(timer, forMode: .common)

RunLoop.current.run(mode: .common, before: Date.distantFuture)

GCD

挖坑

Combine

挖坑

参考资料

Repeating Timers in Swift - GeeksforGeeks