我正在试图停止计时器。我的问题是当我试图停止计时器时,计时器的值为零并且它没有被无效。如果有任何方法可以停止计时器,除了这个?
我的代码就像
计时器在头文件中定义 - 也是合成的。
if([str_Message isEqualToString:ON] // if the command to start timer
{
if(!timer)
{
tmr_CallWebService = [[NSTimer scheduledTimerWithTimeInterval:Time_TracingInterval target:ClassTracing selector:@selector(startLocationTracing) userInfo:nil repeats:YES]retain];
}
//to stop timer
else if([str_Message isEqualToString:OFF])
{
if(timer)
{
[timer invalidate];
timer = nil;
}
请帮帮我......提前谢谢
答案 0 :(得分:5)
我认为您只需要将tmr_CallWebService
替换为timer
。
答案 1 :(得分:2)
[str_Message isEqualToString:ON]
应该是这样的[str_Message isEqualToString:@"ON"]
。类似地与OFF比较。使用@"OFF"
。
答案 2 :(得分:2)
如果您已为计时器声明了属性,则应使用它。例如,如果您的计时器定义为@property (nonatomic, retain) NSTimer *myTimer;
,您应该将其称为self.myTimer并使用该setter设置它并稍后使用访问器使其无效。
看起来您没有在任何地方将tmr_CallWebService设置到您的计时器ivar,因此您只是泄漏并丢失了参考。