Objective-C помощь NSTimer не повторяется - PullRequest
1 голос
/ 04 февраля 2011

мне нужна небольшая помощь, у меня есть метод;countDown, который вызывается, когда iTunes отправляет уведомление, метод countDown затем запускает метод timerHit, который получает двойной минус один из них, затем устанавливает значение для метки, метод countDown устанавливается для многократного запуска timerHit, однако это не кажетсячтобы работать.

Вот что у меня есть, любая помощь будет высоко ценится.

- (void)countDown {
    [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(timerHit:) userInfo:nil repeats:YES];
}

- (void)timerHit:(NSTimer *)p_timer {
    iTunesApplication *iTunes = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"];

    if ([iTunes isRunning]) {
        double trackDuration = [[iTunes currentTrack] duration];
        trackDuration--;
        [duration setDoubleValue:trackDuration];
    }
}

Спасибо, Сами.

1 Ответ

2 голосов
/ 04 февраля 2011

Если таймер работает в потоке, вы должны запустить его в активном цикле выполнения следующим образом:

NSRunLoop *mLoop = [NSRunLoop currentRunLoop];

[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(timerHit:) userInfo:nil repeats:YES];

mRunLoop = YES;
while (mRunLoop && [mLoop runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.01]]);
...