我目前正在这样做:
timer = [NSTimer timerWithTimeInterval:timeUntilAction target:self selector:@selector(actionToPerform) userInfo:nil repeats:NO];
NSRunLoop *runLoop = [NSRunLoop currentRunLoop];
[runLoop addTimer:timer forMode:NSRunLoopCommonModes];
但我希望能够使该计时器无效。调用 invalidate 似乎没有做任何事情,我不知道还能尝试什么,因为我无法从NSRunLoop
我可以看到的任何实例方法中删除计时器NSTimer
or NSRunLoop
。
我应该如何设置一个方法(actionToPerform)在一定的延迟(timeUntilAction)后触发,但仍然有能力取消动作,给定的用户交互。用户还应该能够在初始计时器(已取消的计时器)计划关闭之前重新启动计时器。
任何建议都会很棒!
谢谢