iOS的几种定时器

本文详细介绍了iOS开发中三种常用的定时器:NSTimer、CADisplayLink和GCD定时器。NSTimer依赖RunLoop,但可能因耗时操作延迟;CADisplayLink基于屏幕刷新,精度高,适用于UI重绘;GCD定时器更准时,通过监听系统内核实现。三种定时器各有特点,适用于不同场景。
摘要由CSDN通过智能技术生成

在开发中我们经常用到定时器,iOS为我们提供了多种定时器,包括NSTimer、CADisplayLink、GCD。

NSTimer

iOS中最基本的定时器,其通过RunLoop来实现,一般情况下较为准确,但当前循环耗时操作较多时,会出现延迟问题。同时,也受所加入的RunLoop的RunLoopMode影响,如果因为创建的NSTimer 默认是被加入到了 defaultMode,比如在一个视图里面滑动tableview,当 RunloopMode 变化时,当前的 NSTimer 就不会工作,故我们使用NSTimer需要用NSRunLoopCommonModes。

创建

NSTimer *timer1 = [NSTimer timerWithTimeInterval:2.0 target:self selector:@selector(timerMethod1) userInfo:nil repeats:NO];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

释放

定时器的释放一定要先将其终止,而后才能销毁对象。

invalidate 、timer置为nil 防止循环引用。

GCD

GCD定时器是dispatch_source_t类型的变量,其可以实现更加精准的定时效果。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值