本文将通过一个简单例子介绍一下NSTimer单循环和多循环定时器的使用方法。
创建一个Xcode工程,页面比较简单:
左侧部分实现了单循环定时器的创建、暂停、开启和停止功能,而右侧部分是多循环定时器的实现。
1.单循环定时器
定义定时器:
NSTimer *singleCycleTimer; // 单循环定时器
功能实现:
/*
创建单循环定时器
响应页面里“单循环”按钮
*/
- (IBAction)createSingleCycleTimer:(id)sender
{
// 注:创建timer的同时就已经开始倒计时了,3秒后自动调用singleCycleTimerAction,不用启动timer
singleCycleTimer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(singleCycleTimerAction) userInfo:nil repeats:NO];
NSLog(@"create single cycle timer.");
}
// 单循环定时器触发事件
- (void)singleCycleTimerAction
{
NSLog(@"single cycle timer action.");
}
/*
暂停单循环定时器
需要暂停已创建的定时器,此后还可以叫醒该定时器
暂停和开启配合使用
响应页面里“暂停”按钮
*/
- (IBAction)pauseSingleCycleTimer:(id)sender;
{
[singleCycleTimer setFireDate:[NSDate distantFuture]];
NSLog(@"pause single cycle timer.");
}
/*
开启单循环定时器
叫醒已暂停的定时器
暂停和开启配合使用
响应页面里“开启”按钮
*/
- (IBAction)startSingleCycleTimer:(id)sender;
{
[singleCycleTimer setFireDate:[NSDate distantPast]];
NSLog(@"sta