我为我的应用程序创建了计时器,但计时器只运行一次,然后停止。
以下是我的代码:
moveobjecttimer= [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(moveObject) userInfo:nil repeats:YES];
重复设置为YES,但计时器仅运行一次。
我的问题是:如何在不停止的情况下创建在连续循环中运行的计时器?
谢谢和问候
答案 0 :(得分:0)
也许你的代码是在一个单独的NSThread
中执行的?在这种情况下,计时器被添加到该线程的运行循环中。如果线程随后终止,则在计时器第二次触发之前,计时器仅触发一次。
答案 1 :(得分:0)
我添加了额外的代码,在runloop和主线程上添加了计时器。还添加了记录和相应的日志,计时器在所有时间都处于活动状态。
下面是代码:NSRunLoop * runloop = [NSRunLoop currentRunLoop]; self.moveobjecttimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(moveObject)userInfo:nil repeats:YES];
[runloop addTimer:moveobjecttimer forMode:NSRunLoopCommonModes];
[runloop addTimer:moveobjecttimer forMode:UITrackingRunLoopMode];
[self performSelectorOnMainThread:@selector(moveobjecttimer) withObject:nil waitUntilDone:NO];
BOOL timerstate = [moveobjecttimer isValid];
NSLog(@"Timer validity is: %@",timerstate?@"YES":@"NO");
动画仅再次显示。