1
1)I創建的NSTimer上viewDidLoad中NSTimer在同一線程上調用兩次選擇器方法?
#ifndef NDEBUG
NSLog(@"************In viewDidLoad method initializng timer [%@]",[NSThread currentThread]);
#endif
myTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(onTimerKicks:) userInfo:clues repeats:YES];
2)選擇回叫執行一些條件邏輯(播放視頻的時間)。問題是每次定時器醒來時它都調用選擇器方法兩次在同一個線程上的同一個實例!我怎麼知道 ? NS日誌語句打印線程細節和調試。
- (void) onTimerKicks:(NSTimer *) timer
{
if (currentPlaybackTime == 10) {
#ifndef NDEBUG
NSLog(@"[%@] ************calling onTimerKicks:onAutoPageTimer from onTimer current playbacktime = %d", [NSThread currentThread], currentPlaybackTime);
#endif
}
}
3)這裏是一個喚醒調試了定時
2011-08-30 19:11:51.759 MASLTales[7735:207] ************In viewDidLoad method initializng timer [<NSThread: 0x580f3a0>{name = (null), num = 1}]
2011-08-30 19:12:05.760 MASLTales[7735:207] [<NSThread: 0x580f3a0>{name = (null), num = 1}] ************ccalling onTimerKicks:onAutoPageTimer from onTimer current playbacktime = 10
2011-08-30 19:12:06.260 MASLTales[7735:207] [<NSThread: 0x580f3a0>{name = (null), num = 1}] ************ccalling onTimerKicks:onAutoPageTimer from onTimer current playbacktime = 10
任何人知道爲什麼我看到這則消息的兩倍所有的時間? 在此先感謝。
發誓很快。我增加了我的計時器爲每2秒。現在這一切都有道理。非常感謝'saadnib' – wysiwyg