Ярлык обновления Objective C NSTimer не обновляется - PullRequest
1 голос
/ 08 февраля 2011

У меня есть два метода ниже.Один метод (timerHit), который получает длительность дорожки текущей воспроизводимой песни, минус 1 из нее и печатает ее в журнале, а затем также обновляет метку со значением.Другой метод (countDown), который повторяется каждую секунду, вызывает метод timerHit, однако, кажется, что он работает неправильно, оператор NSLog работает и повторяется, таким образом, печатая значение каждую секунду, но оператор обновления метки [duration setDoubleValue:trackDuration];не работаетКто-нибудь может мне помочь?

- (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"];
    double trackDuration = [[iTunes currentTrack] duration];
    if( trackDuration <= 1 && [p_timer isValid] )
        [p_timer invalidate];
    trackDuration--;
    NSLog(@"%d", trackDuration);
    [duration setDoubleValue:trackDuration];
}

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

Ответы [ 2 ]

0 голосов
/ 08 февраля 2011

Вам необходимо установить текст метки:

duration.text = [NSString stringWithFormat:@"%d", trackDuration]];
0 голосов
/ 08 февраля 2011

Предполагая, что длительность является экземпляром NSTextField (после поиска в Google это похоже на случай - я не могу найти NSLabel как существующий объект), попробуйте это;

[duration setStringValue:[NSString stringWithFormat:@"%d", trackDuration]];
...