NSTimer: Как изменить запланированный метод без задержки? - PullRequest
0 голосов
/ 12 января 2012

В моем iPhone ТАЙМЕР приложение,

через некоторый промежуток времени мне нужно изменить запланированный метод t ....

-(void)startTimerAction
{
    NSLog(@"Start timer Action");
    NSLog(@"Time is Over %@",isTimeOver?@"YES":@"NO");

    if(!isTimeOver)
    {
    timer_main = [NSTimer scheduledTimerWithTimeInterval:(1.0) target:self selector:@selector(ShowActicity) userInfo:nil repeats:YES];
    }
    else if(isTimeOver)
    {
    timer_main = [NSTimer scheduledTimerWithTimeInterval:(1.0) target:self selector:@selector(continueClock) userInfo:nil repeats:YES];    
    }

}

Итак, чтобы остановить и перенести это, я делаю это ... каким-то способом ...

isTimeOver=YES;
               [timer_main invalidate];
               timer_main=nil;
               [self startTimerAction];

для этого существует некоторая задержка или нежелательный интервал для перепланирования таймера в новом методе ....

Как мне это сделать плавно .....

Я просто хочу перенести таймер другим способом без задержки .....

Прямо сейчас я делаю это, чтобы это исправить .....

      NSTimeInterval x=[[timer_main fireDate] timeIntervalSinceNow];
       [timer_main invalidate];
       timer_main=nil;
       sleep(x);   
       totalCount++; 
       seconds++;
       if(seconds>59)
       {
           minutes++;
           seconds=0;
       }

       [self startTimerAction];

Спасибо ...

1 Ответ

1 голос
/ 12 января 2012

Вы можете планировать повторяющиеся таймеры со скоростью срабатывания :

NSTimer *timer = [[NSTimer alloc] initWithFireDate:fireDate
                                  interval:interval
                                  target:self
                                  selector:@selector(foo)
                                  userInfo:nil
                                  repeats:YES];
NSRunLoop *runLoop = [NSRunLoop currentRunLoop];
[runLoop addTimer:timer forMode:NSDefaultRunLoopMode];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...