iOS开发iOS开发JC专题

iOS几种定时器的使用方法

2016-02-18  本文已影响1696人  齐滇大圣

iOS里常常会用到一些定时器的地方,这里有这么几种方法可以使用:
NSTimer、CADisplayLink 和 GCD

一、NSTimer####

NSTimer是我们在写iOS定时器的时候比较常用的一种,关于NSTimer有几点需要注意的,一是内存泄露问题,二是延时问题。关于这些这些问题的解决和NSTimer的使用在NSTimer需要注意的地方中有写。

二、CADisplayLink####

[displayLink invalidate];
displayLink = nil;

当把CADisplayLink对象add到runloop中后,selector就能被周期性调用,类似于重复的NSTimer被启动了;执行invalidate操作时,CADisplayLink对象就会从runloop中移除,selector调用也随即停止,类似于NSTimer的invalidate方法。

使用场景:从原理上可以看出,CADisplayLink适合做界面的不停重绘,比如视频播放的时候需要不停地获取下一帧用于界面渲染。

frameInterval
NSInteger类型的值,用来设置间隔多少帧调用一次selector方法,默认值是1,即每帧都调用一次。

duration
readOnly的CFTimeInterval值,表示两次屏幕刷新之间的时间间隔。需要注意的是,该属性在target的selector被首次调用以后才会被赋值。selector的调用间隔时间计算方式是:调用间隔时间 = duration × frameInterval。

三、GCD####

四、github上一些关于定时器的项目####

参考自####

NSTimer、CADisplayLink、GCD 三种定时器的用法

上一篇下一篇

猜你喜欢

热点阅读