NSTimer和CADisplayLink

NSTimer 初始化器接受调用方法逻辑之间的间隔作为它的一个参数,预设一秒执行30次。CADisplayLink默认每秒运行60次。通过frameInterval属性改变每秒运行帧数,如设置为2,意味着CADisplayLink每隔一帧运行一次,有效的逻辑每秒30次。

此外,NSTimer接受另外一个参数是否重复,而把CADisplayLink设置为重复


直到它失效

还有一个区别在于,NSTimer一旦初始化它就开始运行,而CADisplayLink需要将显示链接添加到一个运行循环中,即用于处理系统事件的一个Cocoa Touch结构

NSTimer 我们通常会用在背景计算,更新一些数值资料,而如果牵涉到画面的更新,动画过程的演变,我们通常会用CADisplayLink。


但是要使用CADisplayLink,需要加入QuartzCore.framework及#import <QuartzCore/CADisplayLink.h>

NSTimer

@interface ViewController : UIViewController

{

    NSTimer *theTimer; //声明

}

@interface ViewController : UIViewController

{

    NSTimer *theTimer; //声明

}

[theTimer invalidate];

theTimer=nil;


CADisplayLink

CADisplayLink,需要加入QuartzCore.framework及#import <QuartzCore/CADisplayLink.h>


/*CADisplayLink 默认每秒运行60次,将它的frameInterval属性设置为2,意味CADisplayLink每隔一帧运行一次,有效的使游戏逻辑每秒运行30次*/

    if(theTimer == nil)

    {

        theTimer = [CADisplayLink displayLinkWithTarget:self selector:@selector(MyTask)];

        theTimer.frameInterval = 2;

        [theTimer addToRunLoop: [NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];

    }


//停用


[theTimer invalidate];

theTimer = nil;















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值