如果我像这样设置一个运行循环:
NSRunloop* loop = [NSRunloop currentRunLoop];
[runLoop addTimer:anyTimer forMode:NSDefaultRunLoopMode];
我可以再停下来吗?还是忽略我用来触发进一步操作的通知的唯一方法?
好的,我举一个问题的例子:
-(void)blinkeffekt:(double)pollingTime{
NSRunLoop* runLoop = [NSRunLoop currentRunLoop];
if (pollingTime != 0) {
NSTimeInterval interval =(double)pollingTime / 1000;
NSTimer timer = [NSTimer scheduledTimerWithTimeInterval:interval target:self selector:@selector(polling) userInfo:nil repeats:YES];
[runLoop addTimer:timer forMode:NSDefaultRunLoopMode];
}
else {
[timer invalidate];
}
}
当然,这里有几个错误——毫无疑问。但我认为,它显示了我的问题。直到现在,答案还不能真正解决。
我需要运行一个计时器并稍后停止它。理想情况下是在类中的另一个函数之外。但是后来我无法再访问“计时器”并且runloop不允许弄清楚,如果这样的“消息”可用。如果我为函数的每次调用注册一个新计时器,那将是非常无效的。