为什么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;
}
}
答案 0 :(得分:3)
我怀疑由于多次启动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多少次,都只有一个实例。