为什么NSTimer每5秒发送一次位置,而不是每60秒



为什么NSTimer每5秒而不是每60秒发送一次位置?

- (void)startTimer {
self.timer = [NSTimer scheduledTimerWithTimeInterval:60.0
target:self
selector:@selector(sendPosition)
userInfo:nil
repeats:YES];
}
- (void)stopTimer {
if(self.timer){
[self.timer invalidate];
self.timer = nil;
}
}

我怀疑由于多次启动startTimer函数而创建了多个计时器。为了确保只有一个这样的定时器实例,您可以实现以下内容。

- (void)startTimer {
// stop and remove timer first if it is already there
if(self.timer){
[self.timer invalidate];
self.timer = nil;
}
self.timer = [NSTimer scheduledTimerWithTimeInterval:60.0
target:self
selector:@selector(sendPosition)
userInfo:nil
repeats:YES];
}

这样,无论调用startTimer多少次,它都只有一个实例

最新更新