美文网首页
iOS 定时器

iOS 定时器

作者: 小辉辉___ | 来源:发表于2017-05-17 10:54 被阅读55次

NSTimer


// 创建定时器

NSTimer *timer = [NSTimer timerWithTimeInterval:2 target:self selector:@selector(test) userInfo:nil repeats:YES];

// 将定时器添加到runloop中,否则定时器不会启动

[[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

// 停止定时器

[timer invalidate];

CADisplayLink


// 创建displayLink

CADisplayLink *displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(test:)];

// 将创建的displaylink添加到runloop中,否则定时器不会执行

[displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];

// 停止定时器

[displayLink invalidate];

displayLink = nil;

GCD定时器

  • 一次性定时

dispatch_time_t timer = dispatch_time(DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC);

dispatch_after(timer, dispatch_get_main_queue(), ^(void){

NSLog(@"GCD-----%@",[NSThread currentThread]);

});

  • 重复执行的定时器
{
//@property (nonatomic ,strong)dispatch_source_t timer;//  注意:此处应该使用强引用 strong

//0.创建队列

dispatch_queue_t queue = dispatch_get_main_queue();

//1.创建GCD中的定时器

/*

第一个参数:创建source的类型 DISPATCH_SOURCE_TYPE_TIMER:定时器

第二个参数:0

第三个参数:0

第四个参数:队列

*/

dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);

//2.设置时间等

/*

第一个参数:定时器对象

第二个参数:DISPATCH_TIME_NOW 表示从现在开始计时

第三个参数:间隔时间 GCD里面的时间最小单位为 纳秒

第四个参数:精准度(表示允许的误差,0表示绝对精准)

*/

dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC, 0 * NSEC_PER_SEC);

//3.要调用的任务

dispatch_source_set_event_handler(timer, ^{

NSLog(@"GCD-----%@",[NSThread currentThread]);

});

//4.开始执行

dispatch_resume(timer);

//

self.timer = timer;

}

相关文章

  • 无标题文章

    iOS NSTimer使用详解-开启、关闭、移除 定时器定时器详解ios定时器关闭定时器NSTimer 1、要使用...

  • iOS进阶-谈谈定时器

    目录 iOS提供定时器API 定时器开发中的坑 一、 iOS提供定时器API 二、定时器开发中的坑 2.1、必须办...

  • 定时器

    定时器 兼容ios

  • iOS中的定时器

    点击这里>> cocoaChina: iOS中的定时器 iOS中定时器有三种,分别是NSTimer、CADispl...

  • GCD定时器使用

    iOS中的常用定时器分为这几类: NSTimer CADisplayLink GCD定时器 选择GCD定时器原因:...

  • iOS:NSTimer的几种创建方式

    在iOS开发中,经常会用到定时器,iOS中常用的定时器有三种:NSTimer,GCD,CADisplayLink。...

  • iOS Timer

    iOS开发中定时器经常会用到,iOS中常用的定时器有三种,分别是NSTime,CADisplayLink和GCD。...

  • 每日笔记

    1、通过safari打开网页 2、iOS的几种定时器及区别 iOS的几种定时器及区别 3、long long类型 ...

  • iOS三大定时器

    iOS开发中定时器经常会用到,iOS中常用的定时器有三种,分别是NSTime,CADisplayLink和GCD。...

  • 定时器的使用介绍

    iOS中的定时器大致分为这几类: NSTimer CADisplayLink GCD定时器 (一)NSTimer ...

网友评论

      本文标题:iOS 定时器

      本文链接:https://www.haomeiwen.com/subject/mpqdxxtx.html