我为我的应用程序创建了计时器,但计时器只运行一次,然后停止。
下面是我的代码:
moveobjecttimer= [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(moveObject) userInfo:nil repeats:YES];
重复设置为 YES,但计时器只运行一次。
我的问题是:如何创建在连续循环中运行而不停止的计时器?
谢谢并恭祝安康
我为我的应用程序创建了计时器,但计时器只运行一次,然后停止。
下面是我的代码:
moveobjecttimer= [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(moveObject) userInfo:nil repeats:YES];
重复设置为 YES,但计时器只运行一次。
我的问题是:如何创建在连续循环中运行而不停止的计时器?
谢谢并恭祝安康
也许您的代码是单独执行的NSThread
?在这种情况下,计时器被添加到该线程的运行循环中。如果线程随后终止,则在计时器可以第二次触发之前,计时器仅触发一次。
我添加了额外的代码,在运行循环和主线程上添加了计时器。还添加了日志记录,根据日志,计时器一直处于活动状态。
下面是代码: NSRunLoop *runloop = [NSRunLoop currentRunLoop]; self.moveobjecttimer= [NSTimer scheduledTimerWithTimeInterval:0.1 目标:self 选择器:@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");
动画只再次显示一次。