@interface someview:UIView{
NSTimer* timer;
}
@end
@implementation someview
-(void)dealloc{
NSLog(@"dealloc someview");
[timer invalidate];
timer = nil;
}
-(void)runTimer{
//
}
-(void)someMethod{
timer = [NSTimer timerWithTimeInterval:2.0f target:self selector:@selector(runTimer) userInfo:nil repeats:YES];
}
@end
释放someview不会调用dealloc并且定时器继续运行。NSTimer禁用UIView中的dealloc
如果我注释掉“timer = [NSTimer schedule ....”部分,dealloc将被调用。这意味着我的代码的所有其他部分正常工作,计时器是罪魁祸首。 runTimer方法是空的,这意味着它只是计时器与我混淆。
在上海华盈的的dealloc只叫,我把“[someview KillTimer函数]和[someview发布],定时器得到无效,但dealloc中仍然不会被调用 – ssj 2011-04-14 22:42:35
然后其他的东西仍然保留视图 – bbum 2011-04-14 23:03:43
不知道为什么我实施的killtimer方法没有工作我第一次尝试它..但它现在起作用 – ssj 2011-04-15 01:10:36