我有一个关于NSTimer的问题,我在.h文件中声明了它,然后在方法中设置了它。但是这个方法会被多次调用,所以NSTimer会在相同的名称下运行多次。
现在我的问题是,是否可以设置标记/ID或其他内容,以便我可以使用正确的标记/ID使NSTimer失效?
谢谢帮助!
我有一个关于NSTimer的问题,我在.h文件中声明了它,然后在方法中设置了它。但是这个方法会被多次调用,所以NSTimer会在相同的名称下运行多次。
现在我的问题是,是否可以设置标记/ID或其他内容,以便我可以使用正确的标记/ID使NSTimer失效?
谢谢帮助!
这个问题很久以前就被问过了,但由于今天我有同样的需求,所以这是我的解决方案:
// set timer
timer = [NSTimer scheduledTimerWithTimeInterval:1.0
target:self
selector:@selector(whateverMethod)
userInfo:@"timer1"
repeats:YES];
如果想使定时器失效,请检查其userInfo字符串:
// invalidate timer
if ([[timer userInfo] isEqual:@"timer1"])
[timer invalidate];
你只需要保存一个对已创建并正在运行的NSTimer的引用,并使用这个引用即可。
MainViewController.m
- (void)timerMethod {
NSTimer *daTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(animations:) userInfo:nil repeats:YES];
}