@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 并且计时器会继续运行。
如果我注释掉“timer = [NSTimer schedule....”部分,将调用 dealloc。这意味着我的代码的所有其他部分都可以正常工作,而计时器是罪魁祸首。runTimer 方法是空的,这意味着它只是在搞乱我的计时器。