据我所知,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. mysql 多列索引的生效规则

    mysql中 myisam,innodb默认使用的是 Btree索引,至于btree的数据结构是怎样的都不重要,只需要知道结果,既然是索引那这个数据结构最后是排好序:就像新华字典他的目录就是按照a,b ...

  2. 关于今天esp8266运行失控问题和oled与串口共存尝试成功的总结

    今天2017-12-1720:24:22下午esp8266再次无法刷入固件,导致我一度崩溃,本来已经认为esp8266已经相当稳定了,没想到今天又运行出错,总结如下 今天2017-12-17esp无法 ...

  3. python3 第五章 - 什么是变量、运算符、表达式

    在读这一章时,运算符的内容比较多,不要去死记.现在记不住也没有关系,现在只要有这个印象.在后面的学习中,会慢慢加深理解,在理解中去记就容易得多了 1.变量 什么是变量?通俗的讲,就是存储在内存中可以变 ...

  4. linux根据端口号查询来源程序

    1.根据端口号查询进程  netstat -tunlp|grep port 2.根据进程查询来源程序 ps aux | grep pid 上图看出所属进程为2281 上图看出占用8083端口的程序为n ...

  5. Log4j扩展使用--日志记录器Logger

    OK,现在我们认真的研究下Logger的配置,进行相关配置扩展. Log4j有三个主要的组件:Loggers(记录器),Appenders(输出源)和Layouts(布局).其中,Logger负责记录 ...

  6. GIT工程迁移方法总结

    Git工程迁移方法总结 Git最近准备迁移一下位置,这里采用命令行的方式,做如下操作. 1.git init  初始化git仓库,这个时候发现本地文件夹多了个.git的文件夹. 2.git remot ...

  7. 二级缓存:EHCache的使用

    EHCache的使用 在开发高并发量,高性能的网站应用系统时,缓存Cache起到了非常重要的作用.本文主要介绍EHCache的使用,以及使用EHCache的实践经验. 笔者使用过多种基于Java的开源 ...

  8. TCP全连接队列和半连接队列已满之后的连接建立过程抓包分析[转]

    最近项目需要做单机100万长连接与高并发的服务器,我们开发完服务器以后,通过自己搭的高速压测框架压测服务端的时候,发生了奇怪的现象,就是服务端莫名其妙的少接收了连接,造成了数据包的丢失,通过网上查资料 ...

  9. 【django之orm小练习】

    作业1 创建单表Book表,要求字段: 1 主键 nid 2 书名 title 3 价格 price 4 出版日期 pubDate 5 出版社 publisher(普通字符串字段) class Boo ...

  10. 手把手的SpringBoot教程,SpringBoot创建web项目(一)

    1.引子 大家好,在接下里的半个多小时,我会给大家详细的介绍SpringBoot的基本使用,相信学完这门课程以后,你会对SpringBoot有一个清晰的认识,并且能够运用这门比较新颖的技术开发一些小程 ...