@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
一部のビューを解放しても、dealloc は呼び出されず、タイマーは実行され続けます。
「timer = [NSTimer schedule....」の部分をコメントアウトすると、dealloc が呼び出されます。つまり、コードの他の部分はすべて正常に機能しており、タイマーが原因です。runTimer メソッドは空です。つまり、タイマーが私をいじっているだけです。