`
dowhathowtodo
  • 浏览: 777565 次
文章分类
社区版块
存档分类
最新评论

iOS定时器NSTimer的使用方法

 
阅读更多

1、初始化

+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;

注:不用scheduled方式初始化的,需要手动addTimer:forMode: 将timer添加到一个runloop中。

  而scheduled的初始化方法将以默认mode直接添加到当前的runloop中.


举例:

NSTimer *timer= [NSTimerscheduledTimerWithTimeInterval:10.0target:selfselector:@selector(timerFired:)userInfo:nilrepeats:NO];

NSTimer *myTimer= [NSTimertimerWithTimeInterval:3.0target:selfselector:@selector(timerFired:)userInfo:nilrepeats:NO];

[[NSRunLoopcurrentRunLoop]addTimer:myTimerforMode:NSDefaultRunLoopMode];

2、触发(启动)

当定时器创建完(不用scheduled的,添加到runloop中后,该定时器将在初始化时指定的timeInterval秒后自动触发。


可以使用-(void)fire;方法来立即触发该定时器;

注:You can use this method to fire a repeating timer without interrupting its regular firing schedule. If the timer is non-repeating, it is automatically invalidated after firing, even if its scheduled fire date has not arrived.

在重复执行的定时器中调用此方法后立即触发该定时器,但不会中断其之前的执行计划;

在不重复执行的定时器中调用此方法,立即触发后,就会使这个定时器失效。

3、停止

- (void)invalidate;

这个是唯一一个可以将计时器从runloop中移出的方法。

注:

NSTimer可以精确到50-100毫秒.

NSTimer不是绝对准确的,而且中间耗时或阻塞错过下一个点,那么下一个点就pass过去了.


文章转载自:http://www.cnblogs.com/zhulin/archive/2012/02/02/2335866.html

分享到:
评论

相关推荐

    ios 时间定时器 NSTimer应用demo

    ios NSTimer应用demo 。iphone6.1 测试通过。具体demo截图和说明在:http://blog.csdn.net/donny_zhang

    IOS 中NSTimer定时器的使用

    IOS 中NSTimer定时器的使用 NSTimery 定时器,主要用于进行定时执行指定方法,常用场景如:获取验证码的按钮倒计时;图片轮播定时。 1 使用注意事项: 1.1 倒计时时间间隔(时间单位是秒) 1.2 指定的执行方法 1.3...

    ios-NSTimer:完美解决内存泄漏以及滑动ScrollView时定时器不起作用bug.zip

    使用系统原生的NSTimer来执行定时任务时会造成内存泄漏(闭环),同时在滑动ScrollView时,定时器并没起做用的bug Github:https://github.com/liuchongfaye/NSTimerInprovement 简书:...

    iOS定时器Demo

    关于iOS定时器和延时方法的四个实用小demo,可直接运行,copy代码也可直接使用,代码比较容易理解。

    简单的时间选择器Nstimer

    简单的nstimer时间计算器,上面有暂停,清零等简单的功能,免费下载

    IOS 定时器

    本实例是一个IOS下定时器的Demo,通过本实例你可以学到IOS下定时器的创建,定时器的使用。

    NStimer 定时器

    NStimer 定时器 iOS 倒计时 objective-c

    iOS中的NSTimer定时器的初步使用解析

    创建一个定时器(NSTimer) - (void)viewDidLoad { [super viewDidLoad]; [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(actionTimer:) userInfo:nil repeats:YES]; } - (void)...

    iOS中最全的各种定时器使用教程

    ,下面将给大家详细介绍关于iOS定时器使用的相关内容,话不多说了,来一起看看详细的介绍吧。 一. NSTimer NSTimer的初始化方法有以下几种: 会自动启动, 并加入 MainRunloop 的 NSDefaultRunLoopMode 中, 注意: ...

    iOS NSTimer循环引用的办法

    在当前控制器(ViewController)的view上添加了一个自定义的view(LXFTimerView), LXFTimerView在成功创建出来后添加了定时器NSTimer并加入RunLoop开始工作, 当在当前控制器里将LXFTimerView移除掉后,定时器还在...

    iOS开发定时器的三种方法分享

    这个时候我们就需要用到定时器,这里,我为大家推荐三种方法,分别是:NSTimer、CADisplayLink、GCD。接下来我就一一介绍它们的用法。希望能帮到大家。 一、NSTimer(一般用于定时的更新一些非界面上的数据) 1. 创建...

    ios UIScrollView PageControl NSTimer

    1.UIScrollView循环滑动,滑动到最后一页时,继续滑动,回到第一页 2.开始手动滑动时,停止定时器,手动滑动结束后停止定时器 3.向前滑之后,自动向前滑动 4.向后滑动之后,自动向后滑动

    NSTimer定时器

    nstimer 定时器 倒计时 ios开发 代码

    NSTimer在tableView上的复用

    关于定时器在tableview上的复用问题

    ios-Timer不用担心内存泄漏的定时器.zip

    你可以像和NSTimer一模一样的初始化方法来使用XTimer,但是你用再担心是否会发生内存泄漏,以及RunLoop的问题。 同时XTimer还能够暂停、重新启动,这都是NSTimer不具备的

    ZHWWeakTimer-master.zip

    解决iOS中使用NSTimer定时器,无法调用dealloc方法,导致引用对象无法释放,造成循环引用的问题。

    iOS简单易用的GCD计时器的实现原理

    在学习iOS过程中,想定大家对于定时器都不陌生,在日常开发中总会碰到需要计时器的功能,常见的定时器有NSTimer、GCD、CADisplayLink。网上也有很多的教程介绍三者的区别,今天主要讲的是GCD这种方式使用以及封装。 ...

    ios奥林匹克

    1) 规划程序文件夹和文件结构 2) 同一个工程中实现iPhone版和iPad版 3) 标签栏和标签栏控制器使用 4) 表视图控件和表视图控制器使用 5) NSTimer定时器使用

Global site tag (gtag.js) - Google Analytics