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过去了.
使用代码例子:
相关推荐
在这个例子中,我们每秒调用一次`updateCounter`方法,`repeats: true`表示计时器将持续触发,直到被取消。 倒计时10秒的实现如下: ```swift var remainingSeconds = 10 func startCountdown() { timer = Timer...
总的来说,OC版的iOS计时器主要涉及`NSTimer`的创建、添加到运行循环、处理计时器触发的事件以及控制计时器的状态。理解并熟练掌握这些知识点对于iOS开发者来说非常重要,因为它们在许多场景下都有应用,如游戏计时...
在Objective-C或Swift中,我们可以使用`NSTimer`(Objective-C)或`Timer`(Swift)类来创建计时器。计时器不是线程安全的,它运行在RunLoop的上下文中,因此通常与UI更新相关联。创建计时器的基本步骤如下: 1. ...
这个“简单的时间选择器Nstimer”是一个实用工具,它提供了一个用户界面来控制`NSTimer`,允许用户进行暂停、清零等操作,非常适合学习`NSTimer`的基础用法和交互设计。 `NSTimer`是`NSRunLoop`的一部分,它不直接...
MKImpulse是一个用来代替系统NSTimer的高精度脉冲器 系统的NSTimer是添加到Runloop中的, 在系统繁忙时会造成偏差, 时间越长, 偏差越大 而MKImpulse是基于GCD编写的脉冲器, 精度由CPU时钟进行计算, 误差基本可以...
多种方法实现计时器,包括通信获取服务器端系统时间,多线程实现,NSTimer实现等等 http://blog.csdn.net/dingxiaowei2013/article/details/9864279
1. **计时器基础**:在iOS开发中,我们通常使用`NSTimer`或`CADisplayLink`来创建计时器。在这个案例中,可能是使用了`NSTimer`,因为它适合周期性执行任务,如倒计时更新UI。`NSTimer`需要一个选择器(selector)来...
计时器(Timer)在iOS中通常是通过NSTimer类来创建和管理的。NSTimer是一个调度对象,可以按照预定的时间间隔触发事件。在按钮上添加计时器,我们可以设置一个时间间隔,当这个时间过去后,计时器会发送一个消息给它...
GCD timer是基于GCD的一种计时器实现,相较于NSTimer,它提供了一种更高效、更易于管理的计时器解决方案。本篇文章将深入探讨iOS GCD timer的相关知识点,并介绍如何封装和使用。 1. **GCD基础** - GCD是Apple提供...
本文将深入探讨`NSTimer`的使用,特别是在创建小计时器时的两种类方法,以及它们如何受到屏幕滚动事件的影响及解决方案。 一、NSTimer类介绍 `NSTimer`是Foundation框架的一部分,它允许开发者在指定的时间间隔后...
IOS 中NSTimer定时器的使用 NSTimery 定时器,主要用于进行定时执行指定方法,常用场景如:获取验证码的按钮倒计时;图片轮播定时。 1 使用注意事项: 1.1 倒计时时间间隔(时间单位是秒) 1.2 指定的执行方法 1.3...
本项目“ios-计时器实现时钟.zip”提供的DHTimerDemo应该是一个简单的示例,展示了如何利用苹果的Foundation框架中的NSTimer或Swift的Timer类来创建一个实时更新的时钟界面。 首先,我们要了解iOS中的定时器基础。...
示例iOS计时器 有时候,您将Timer视为线程并使用它, 似乎很少有人不知道RunLoop的commonModes是否已设置和使用。 我没有思考就使用它。 如果同步不正确,我将在某种程度上对其进行纠正并使用它。 反思无知,再次...
创建`NSTimer`通常涉及`scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:`方法,参数分别代表时间间隔、目标对象、选择器方法、用户信息和是否重复。 - 使用`addTimer:toRunLoop:forMode:`将...
计时器队列 `NSTimer`可以关联到不同的`OperationQueue`或`DispatchQueue`上,以控制其执行顺序和优先级: ```swift let backgroundQueue = DispatchQueue.global() let timer = Timer(timeInterval: 1.0, target...
在iOS开发中,UITableView经常需要配合计时器来实现各种动态效果或实时更新。本文将详细介绍在UITableView中使用计时器的四种常见实现方式:NSTimer、DispatchSource、CADisplayLink,以及一种特殊的NSTimer使用场景...
LSTTimer 性能和精度兼得的iOS计时器组件github: https://github.com/LoSenTrad/LSTTimer简书: https://www.jianshu.com/p/4f05c7e26bb11.特性提供丰富的api,简单入手使用单例设计,安全且占用内存少,统一管理app所有...
在这里,我们主要探讨iOS平台上的计时器应用开发。 在iOS上构建一个计时器应用,你需要掌握以下关键知识点: 1. **Swift编程语言**: iOS开发主要使用Swift,这是一种由Apple推出的强大且易于学习的编程语言。理解...