NSTimer无效,无法单击停止按钮

时间:2016-07-31 21:33:36

标签: ios nstimer

我无法在点击停止按钮时停止计时器,但是当我点击停止按钮时,它再次以较少的延迟发射。

这是我的ViewController.h文件:

#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
{
  NSTimer *timer;
}

- (IBAction)startTimer:(id)sender;
- (IBAction)stopTimer:(id)sender;
@end

和ViewController.m文件:

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

- (IBAction)startTimer:(id)sender {
    timer=[NSTimer scheduledTimerWithTimeInterval:1.0 target:self      selector:@selector(timerFired) userInfo:nil repeats:YES];
}

-(void) timerFired{
    NSLog(@"Timer Fired");
}

- (IBAction)stopTimer:(id)sender {
    [timer invalidate];
}
@end

谢谢。

2 个答案:

答案 0 :(得分:0)

添加:

- (IBAction)stopTimer:(id)sender {
    [timer invalidate];
    timer = nil;
}

答案 1 :(得分:0)

检查实际上是否正在调用stopTimer。从您的描述中可以看出,您已将两个按钮连接到startTimer

最好在停止时将计时器设置为nil,然后您可以检查startTimer以查看计时器是否已在运行。