NSTimer没有停止

时间:2011-08-04 12:36:42

标签: iphone objective-c ios4 iphone-sdk-3.0 nstimer

我正在试图停止计时器。我的问题是当我试图停止计时器时,计时器的值为零并且它没有被无效。如果有任何方法可以停止计时器,除了这个?

我的代码就像

计时器在头文件中定义 - 也是合成的。

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;

}

请帮帮我......提前谢谢

3 个答案:

答案 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,因此您只是泄漏并丢失了参考。