开发者

Objective-C help NSTimer doesn't repeat

i need a little help i have a method; countDown which is called when iTunes sends a notification, the method countDown then runs the method timerHit which gets a double minuses one from it then sets the value to a label, the method countDown is set to repeatedly run timerHit, however i开发者_如何学运维t doesn't seem to be working.

Here's what i have so far, any help would be much appreciated.

- (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];
    }
}

Thanks, Sami.


If the timer is on a thread then you should run it on a active run loop like so:

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]]);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜