我需要一点帮助我有一个方法;当iTunes发送通知时调用countDown,方法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];
}
}
谢谢,萨米。
答案 0 :(得分:2)
如果计时器在一个线程上,那么你应该在一个活动的运行循环上运行它,如下所示:
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]]);