【发布时间】:2015-12-08 00:37:59
【问题描述】:
我有一个 NSTimer,我想在我离开 vViewVontroller 时停止它:
计时器在我从viewWillAppear 调用的方法中:
- (void) myMehtod
{
//timer = [[NSTimer alloc] init];
// appel de la methode chaque 10 secondes.
timer = [NSTimer scheduledTimerWithTimeInterval:10.0f
target:self selector:@selector(AnotherMethod) userInfo:nil repeats:YES];
//self.timerUsed = timer;
}
我在viewWillDisappear中调用了stopTimer方法
- (void) stopTimer
{
[timer invalidate];
timer = nil;
}
PS:我在this question中尝试了user1045302的答案,但没有奏效:
【问题讨论】:
-
timer是如何声明的?它是您班级的@property,一个实例变量吗?如果您在stopTimer的开头放置一个断点,它甚至会被调用吗?此时timer的值是多少? -
当你回到viewcontroller那个时候你可以调用[self stoptimer];
-
你怎么知道计时器没有停止?
-
从主线程调用
stopTimer。dispatch_async(dispatch_get_main_queue(), ^{ [self stopTimer]; }); -
@Cyrille : timer 在我的视图控制器中声明如下: NSTimer *timer;
标签: ios objective-c nstimer