Swift3.0很多语法都有变化,GCD的定时器也发生了变化
1.首先,创建定时器,和之前的有所不同,代码如下:
self.timer = DispatchSource.makeTimerSource(flags: [], queue:DispatchQueue.main)
即在主线程中创建一个定时器,timer是个DispatchSourceTimer类型,注意在控制器中强引用。
2.设定定时器的基本参数
self.timer?.scheduleRepeating(deadline: .now(), interval: DispatchTimeInterval.milliseconds(20), leeway: DispatchTimeInterval.milliseconds(2000))
该行代码设定开始的时间,间隔的时间,以及剩余持续的时间
3.设定定时器的事件
self.timer.setEventHandler {
//Do something
}```
> 该处设定要执行的事件
**4.开启你的定时器**
```swift
self.timer.resume()
或者
self.timer.activate()
补充
- GCD所开启的定时器是不受Runloop模式影响的。
网友评论