我以前有一个NSTimer
这是工作正常。我为runloop添加了另一个NSTimer
,因为现在我需要在延迟后重复调用两个函数。两种功能都有不同的延迟。我的代码如下。第二个NSTimer不工作?
self.now = [NSDate date] ;
self.timer = [[NSTimer alloc] initWithFireDate:self.now
interval:500
target:self
selector:@selector(Func1)
userInfo:nil
repeats:YES] ;
self.runLoop = [NSRunLoop currentRunLoop];
[runLoop addTimer:self.timer forMode:NSDefaultRunLoopMode];
[self.runLoop runUntilDate:[NSDate dateWithTimeIntervalSinceNow:10000]];
//Second timer start here.its not working.The function 'func2' is not getting called
self.now = [NSDate date] ;
self.timer = [[NSTimer alloc] initWithFireDate:self.now
interval:60
target:self
selector:@selector(Func2)
userInfo:nil
repeats:YES] ;
self.runLoop = [NSRunLoop currentRunLoop];
[runLoop addTimer:self.timer forMode:NSDefaultRunLoopMode];
[self.runLoop runUntilDate:[NSDate dateWithTimeIntervalSinceNow:10000]];
第一NSTimer
仍在工作,但第二NSTimer
不起作用。
如果在进行Volker建议的修复后仍然看到问题,我会查看您的runloop调用。这看起来不正确。您应该设置两个定时器,将它们添加到runloop,就是这样(如果这是主线程)。如果不是,你必须自己关闭运行循环,我认为它应该在一个while循环中完成。 –
@Volker它仍然没有工作 – zzzzz
请参阅Rob的解答您的代码中的另一个问题的答案 – Volker