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

NSTimer *myTimer = [NSTimertimerWithTimeInterval:3.0 target: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过去了.

时间: 2024-10-10 17:50:16

NSTimer 用法 定时器的相关文章

NSTimer用法,暂停,继续,初始化

NSTimer用法,暂停,继续,初始化 转载:http://blog.csdn.net/zhuzhihai1988/article/details/7742881 NSTimer的使用方法 1.初始化 + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo; + (NSTi

window.clearInterval与window.setInterval的用法 定时器的设置

window.setInterval() 功能:按照指定的周期(以毫秒计)来调用函数或计算表达式. 语法:setInterval(code,millisec) code:在指定时间到时要执行的JavaScript代码串或函数. millisec:设定的定时时间,用毫秒数表示. 返回值:定时器的ID值,可用于clearInterval()方法停止指定的定时器. 注:setInterval()方法会不停地调用函数,直到用clearInterval()终止定时或窗口被关闭. window.clearI

页面实现多个定时器(计时器)时选用NSTimer还是GCD?(干货不湿)

定时器在我们每个人做的iOS项目里面必不可少,如登录页面倒计时.支付期限倒计时等等,一般来说使用NSTimer创建定时器: + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repeats:(BOOL)yesOrNo; + (NSTimer *)scheduledTimerWithTimeIn

NSTimer “定时器”

•NSTimer叫做“定时器”,它的作用如下 Ø在指定的时间执行指定的任务 Ø每隔一段时间执行指定的任务 Ø •调用下面的方法就会开启一个定时任务 + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti   target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo; 每隔ti秒,调用一次aTarget的aSele

页面实现多个定时器(计时器)时选用NSTimer还是GCD

这里讲述的是页面实现多个定时器(计时器)时选用NSTimer还是GCD?(干货不湿)的文章,具体方法请看介绍 定时器在我们每个人做的iOS项目里面必不可少,如登录页面倒计时.支付期限倒计时等等,一般来说使用NSTimer创建定时器: + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repea

发送短信验证码按钮 定时器

static int i = 29; @property(nonatomic,strong) NSTimer *timmer;//定时器 - (void)sendNumber{ NSLog(@"发送验证码"); self.getTelephoneCodeBtn.enabled = NO; [self.getTelephoneCodeBtn setTitle:@"已发送" forState:UIControlStateDisabled]; [self.getTelep

NSTimer

NSTimer叫做“定时器”,它的作用如下在指定的时间执行指定的任务每隔一段时间执行指定的任务 调用下面的方法就会开启一个定时任务+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;每隔ti秒,调用一次aTarget的aSelector方法,yesOr

UI基础--使用UIScrollView、UIPageControl、NSTimer实现图片循环播放

实现思路: 1.创建一个UIScrollView,这里设置为宽度300,高度130,通过storyboard创建: 2.使用代码在UIScrollView中添加ImageView,横向放入多张ImageView: 3.设置UIScrollView的contentSize为所有图片的宽度总和: 4.要保证UIScrollView的宽度等于一张ImageView的宽度,才能正确分页: 5.添加UIPageControl控件,设置当前页数和总页数: 6.添加NSTimer实现自动循环: UIPageC

iOS开发从入门到精通--定时器UITimer和视图对象移动

定时器UITimer和视图对象移动 在ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewController{ //定义一个定时器对象 //可以在每隔固定的时间发送一个消息 //通过消息来调用相应的事件函数 //通过此函数可在固定时间段来完成一个根据时间间隔的任务 NSTimer * _timeView; } //定时器的属性对象 @property(retain,nonatomic) NSTi