如何在Swift中创建一个定时器(Timer)?
在Swift中创建一个定时器(Timer)可以通过`Timer.scheduledTimer`方法来实现。以下是一个示例代码:
```swift
import Foundation
// 定义一个函数作为定时器触发时调用的回调
@objc func timerFired() {
print("Timer has fired!")
}
// 创建定时器,每隔1秒(1.0)调用一次timerFired函数
let timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(timerFired), userInfo: nil, repeats: true)
```
在这个示例中:
1. `timeInterval`参数指定了定时器触发的时间间隔(秒),这里设置为1.0。
2. `target`参数指定了定时器触发时调用方法的对象。
3. `selector`参数指定了定时器触发时调用的方法,此处为`timerFired`函数。
4. `userInfo`参数可以传递用户信息,这里设置为`nil`。
5. `repeats`参数为`true`,表示定时器会重复触发。
需要注意的是,定时器会强引用target对象,所以记得在适当的时候使定时器失效(例如在视图控制器销毁时),以防止潜在的内存泄漏:
```swift
timer.invalidate()
```
这样,定时器就会停止运行。
```swift
import Foundation
// 定义一个函数作为定时器触发时调用的回调
@objc func timerFired() {
print("Timer has fired!")
}
// 创建定时器,每隔1秒(1.0)调用一次timerFired函数
let timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(timerFired), userInfo: nil, repeats: true)
```
在这个示例中:
1. `timeInterval`参数指定了定时器触发的时间间隔(秒),这里设置为1.0。
2. `target`参数指定了定时器触发时调用方法的对象。
3. `selector`参数指定了定时器触发时调用的方法,此处为`timerFired`函数。
4. `userInfo`参数可以传递用户信息,这里设置为`nil`。
5. `repeats`参数为`true`,表示定时器会重复触发。
需要注意的是,定时器会强引用target对象,所以记得在适当的时候使定时器失效(例如在视图控制器销毁时),以防止潜在的内存泄漏:
```swift
timer.invalidate()
```
这样,定时器就会停止运行。
若文章对您有帮助,帮忙点个赞!
(微信扫码即可登录,无需注册)