据我所知,iOS中的定时器有两种。一个叫NSTimer,一个叫CADisplayLink。还有一种是使用GCD,不常用,这里就不介绍了。

下边说下两个定时器分别得用法:

=========================================================================

NSTimer的用法,实例化NSTimer,然后加到运行循环里。

NSTimer*timer = [NSTimerscheduledTimerWithTimeInterval:1.0target:selfselector:@selector(nextImage)userInfo:nilrepeats:YES];

创建定时器并在指定时间里循环@selector发送消息 即执行方法

 [[NSRunLoop mainRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
 
 // 关掉定时器
 [timer invalidate];
// 置为nil
 self.timer = nil;
========================================================================
CADisPlayLink的用法:
CADisplayLink是一个能和屏幕刷新率同步的频率将特定的内容画到屏幕上的定时器类。CADisplayLink以特定模式注册到runloop后,每当屏幕显示内容刷新结束的时候,runloop就会向CADisplayLink指定的target发送一次指定的selector消息, CADisplayLink类对应的selector就会被调用一次。所以通常情况下,按照iOS设备屏幕的刷新率60次/秒
// link默认是1/60秒执行一次

   CADisplayLink*link = [CADisplayLinkdisplayLinkWithTarget:selfselector:@selector(updateTimer)];

  //执行定时器把定时器放在主运行循环中执行

    [linkaddToRunLoop:[NSRunLoop mainRunLoop]forMode:NSDefaultRunLoopMode];
// 关掉定时器
 [link invalidate];
// 置为nil
 self.link = nil;
 
==========================================================================
 
 
 
 

iOS中的定时器的更多相关文章

  1. iOS中的定时器 - NSTimer 使用方法

    我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3556805.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...

  2. iOS中几种定时器

    在软件开发过程中,我们常常需要在某个时间后执行某个方法,或者是按照某个周期一直执行某个方法.在这个时候,我们就需要用到定时器. iOS中定时器NSTimer的使用   1.初始化 + (NSTimer ...

  3. IOS中的NSTimer定时器详解

    /* 在IOS中有多种定时器,这里我对NSTimer定时器做了一个简单的介绍.如果你是小白,你可能会从这篇文章中学习到一些知识,如果你是大牛,请别吝啬你的评论,指出我的不足,你的质疑是对我最大的帮助. ...

  4. iOS中的三大定时器

    iOS开发中定时器经常会用到,iOS中常用的定时器有三种,分别是NSTime,CADisplayLink和GCD. NSTimer 方式1 // 创建定时器 NSTimer *timer = [NST ...

  5. IOS开发中将定时器添加到runLoop中

    runLoop主要就是为线程而生的.他能够让线程在有任务的时候保持工作状态,没有任务的时候让线程处于休眠待备状态. 主线程的runloop默认是开启的.主线程上创建的定时器已经默认添加到runLoop ...

  6. iOS开发RunnLoop学习二:GCD中的定时器

    #import "ViewController.h" @interface ViewController () /** 注释 */ @property (nonatomic, st ...

  7. iOS中多线程原理与runloop介绍

    一.线程概述 有些程序是一条直线,起点到终点:有些程序是一个圆,不断循环,直到将它切断.直线的如简单的Hello World,运行打印完,它的生命周期便结束了,像昙花一现那样:圆如操作系统,一直运行直 ...

  8. iOS中的NSTimer 和 Android 中的Timer

    首先看iOS的, Scheduling Timers in Run Loops A timer object can be registered in only one run loop at a t ...

  9. iOS中-Qutarz2D详解及使用

    在iOS中Qutarz2D 详解及使用 (一)初识 介绍 Quartz 2D是二维绘图引擎. 能完成的工作有: 绘制图形 : 线条\三角形\矩形\圆\弧等 绘制文字 绘制\生成图片(图像) 读取\生成 ...

随机推荐

  1. IOS 设置文件是否使用ARC

    全项目设置:Building Settings修改Objective-C Automatic Reference Counting设置是否使用 单文件设置:Build Phases-Compile S ...

  2. ZooKeeper对比Eureka

    刚开始看到Eureka这个单词的时候真心不会念,查了后发现他有一个好听的名字,来,大家一起念 [ jʊ'rikə ] 简介 Eureka本身是Netflix开源的一款提供服务注册和发现的产品,并且提供 ...

  3. Mybatis集成到spring boot

    1, Mybatis简介 MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可 ...

  4. MapReduce寻找共同好友

    1.测试文件 A:B,C,D,F,E,O B:A,C,E,K C:F,A,D,I D:A,E,F,L E:B,C,D,M,L F:A,B,C,D,E,O,M G:A,C,D,E,F H:A,C,D,E ...

  5. Matlab实用技巧

    1  Matlab Cell 编程模式 在一个长长的脚本m文件中,可能需要对其中的一段反复修改,查看执行效果,这时,cell模式就非常有用了.cell模式相当于将其中的代码拷贝到命令窗口中运行.两个% ...

  6. <>和“”的区别

    <stdio.h>是直接从系统里边找. ""是先在本地找,然后在系统里边找. <>不可以替换"",       "" ...

  7. java存放数据的5个地方

    1.寄存器:最快的存储区,位于处理器内部,但是寄存器的数量极其有限,所以寄存器根据需求进行分配,你不 能直接控制,也不能在程序中感觉到寄存器存在的任何迹象.(C/C+允许向寄存器建议寄存器配, 但它不 ...

  8. z3 巧解CTF逆向题

    z3 巧解逆向题 题目下载链接:http://reversing.kr/download.php?n=7 这次实验的题目为Reversing.kr网站中的一道题目. 题目要求: ReversingKr ...

  9. iOS-常用三方工具

    #菜单 pod 'LGSideMenuController' # 刷新 pod 'MJRefresh' # 网络请求 pod 'AFNetworking', '~> 3.0' # 图片缓存 po ...

  10. DG环境的日常巡检

    DG环境的日常巡检 目录 1.DG环境的日常巡检4 1.1.主库环境检查4 1.1.1.主库实例启动状态检查4 1.1.2.主库启动模式检查4 1.1.3.主库DG环境的保护模式检查4 1.1.4.主 ...