0

我为我的应用程序创建了计时器,但计时器只运行一次,然后停止。

下面是我的代码:

moveobjecttimer= [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(moveObject) userInfo:nil repeats:YES];

重复设置为 YES,但计时器只运行一次。

我的问题是:如何创建在连续循环中运行而不停止的计时器?

谢谢并恭祝安康

4

2 回答 2

0

也许您的代码是单独执行的NSThread?在这种情况下,计时器被添加到该线程的运行循环中。如果线程随后终止,则在计时器可以第二次触发之前,计时器仅触发一次。

于 2013-02-14T11:48:55.397 回答
0

我添加了额外的代码,在运行循环和主线程上添加了计时器。还添加了日志记录,根据日志,计时器一直处于活动状态。

下面是代码: 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");

动画只再次显示一次。

于 2013-02-15T10:04:19.933 回答