我在用
[NSTimer scheduledTimerWithTimeInterval:0.1f
target:self
selector:@selector(update)
userInfo:nil
repeats:YES];
我想停下来调用这个计时器之一。
viewDidDisappear
我怎样才能做到这一点? 失效?
声明NSTimer *myTimer
在.h文件中。
汤姆说,这样的分配情况
myTimer = [NSTimer scheduledTimerWithTimeInterval:0.1f
target:self
selector:@selector(update)
userInfo:nil
repeats:YES];
停止并使用该无效
- (void) viewDidDisappear:(BOOL)animated
{
[myTimer invalidate];
myTimer = nil;
}
试试这个
的viewController .H
NSTimer *timer;
viewcontroller.m
timer = [NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(pollTime)
userInfo:nil
repeats:YES];
- (void) viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
[timer invalidate];
}
是的,你可以使用- (void)invalidate
的实例方法NSTimer
。
当然,要做到这一点,你必须保存NSTimer
从返回的实例[NSTimer scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:]
到您的视图控制器的实例变量或属性,这样你就可以在访问它viewDidDisappear
。
invalidate
的方法NSTimer
是使用了停止计时器
- (void) viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
[self.timer invalidate];
self.timer = nil;
}
如果你不是圆弧这时别忘[self.timer release];
停止或作废的NSTimer首先你要对的NSTimer在全球范围内创建实例。
Timer=[NSTimer scheduledTimerWithTimeInterval:0.1f
target:self
selector:@selector(update)
userInfo:nil
repeats:YES];
之后尝试这样的,
if (Timer != nil) {
[Timer invalidate];
Timer = nil;
}