`
janedoneway
  • 浏览: 568020 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

iOS中定时器NSTimer的使用

 
阅读更多

http://www.cnblogs.com/zhulin/archive/2012/02/02/2335866.html

 

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  = [ NSTimer   scheduledTimerWithTimeInterval : 10.0   target : self   selector : @selector ( timerFired: userInfo : nil   repeats : NO ];

NSTimer *myTimer = [ NSTimer timerWithTimeInterval: 3.0  target: self selector: @selector (timerFired:) userInfo: nil repeats: NO ] ;

[[ NSRunLoop currentRunLoop] addTimer: myTimer forMode: 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过去了.

分享到:
评论

相关推荐

    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定时器的初步使用解析

    主要介绍了iOS中的NSTimer定时器的初步使用解析,通过例子简单讲解了NSTimer的输出与停止的方法,需要的朋友可以参考下

    ios UIScrollView PageControl NSTimer

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

    简单的时间选择器Nstimer

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

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

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

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

    在开发中,很多时候我们需要用到定时器实时刷新某个数值。这个时候我们就需要用到定时器,这里,我为大家推荐三种方法,分别是:NSTimer、CADisplayLink、GCD。接下来我就一一介绍它们的用法。希望能帮到大家。 一、...

    NStimer 定时器

    NStimer 定时器 iOS 倒计时 objective-c

    IOS 定时器

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

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

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

    iOS定时器Demo

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

    NSTimer定时器

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

    iOS NSTimer循环引用的办法

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

    NSTimer在tableView上的复用

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

    ZHWWeakTimer-master.zip

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

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

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

    iOS之UITableView计时器的实现方式总结(NSTimer、DispatchSource、CADisplayLink)

    今天博客中所涉及的内容并不复杂,都是一些平时常见的一些问题,通过这篇博客算是对UITableView中使用定时器的几种方式进行总结。本篇博客会给出在TableView中使用NSTimer或者DispatchSourcer中常见的五种方式。当然...

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

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

Global site tag (gtag.js) - Google Analytics