_timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(testTimer:) userInfo:nil repeats:YES];
NSTimer 实质上是对target进行的是retain 而并不是assign,所有self的retainCount加1 导致dealloc函数不执行,
所以这样写
- (void)dealloc { [_timer invalidate]; }
是错误的
应该在 _timer执行完后 invalidate 或者- (void) viewWillDisappear:(BOOL)animated{
[_timer invalidate];
}
关于NSTimer的更多资料
http://justsee.iteye.com/blog/1774722