Ios NSTimer在同一线程上调用选择器方法两次?

Ios NSTimer在同一线程上调用选择器方法两次?,ios,nstimer,Ios,Nstimer,1) 我在viewdidload上创建了一个NSTimer #ifndef NDEBUG NSLog(@"************In viewDidLoad method initializng timer [%@]",[NSThread currentThread]); #endif myTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(onTimerKicks:) u

1) 我在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
2011-08-30 19:11:51.759 MASLTales[7735:207]*********在viewDidLoad方法中初始化计时器[{name=(null),num=1}]
2011-08-30 19:12:05.760 MASLTales[7735:207][{name=(null),num=1}]****************调用onTimerKicks:onAutoPageTimer from onTimer当前播放时间=10
2011-08-30 19:12:06.260 MASLTales[7735:207][{name=(null),num=1}]****************c调用onTimerKicks:onAutoPageTimer从onTimer当前播放时间=10
有人知道我为什么总是看到这条消息两次吗?
提前感谢。

实际上它没有调用选择器两次,而是连续调用选择器,因为在初始化计时器时,您编写的
重复:YES]但在选择器中有一个条件块,它仅在1秒内为真,计时器每半秒触发一次选择器。所以它打印了两次。

誓言很快。我把计时器增加到每2秒一次。现在一切都有了意义。非常感谢“saadnib”