Avatar ·

如何在Swift中使用Timer (NSTimer):创建、停止和重复定时器

你好!我刚开始学习Swift,并尝试在我的应用中实现一个简单的倒计时定时器。我需要每秒更新屏幕上的值,并在10秒后停止定时器。 我在文档中找到了Timer类,但遇到了一些问题。以下是我尝试做的: ```swift var seconds = 10 func startTimer() { Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateTimer), userInfo: nil, repeats: true) } @objc func updateTimer() { seconds -= 1 print(seconds) if seconds == 0 { // 如何停止定时器? } } ``` 定时器启动并开始倒计时,但我不明白: 1. 当`seconds`变为0时,如何正确停止定时器? 2. 为什么Xcode有时会发出关于强引用循环(strong reference cycle)的警告? 3. 如何创建一个只触发一次的定时器(不重复)? 4. 有没有办法在不使用selector的情况下使用定时器,例如使用闭包?