IOS中使用ARC和定时器导致viewController无法正常释放

在viewDidload中声明定时器,

timer =  [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(refresh) userInfo:nil repeats:YES];

当前viewController被推出(正确释放)时,应该会执行dealloc,发现竟然没有执行dealloc,后来跟踪发现是NSTimer没有释放。

解决方法在viewWillDisappear中释放:

-(void)viewWillDisappear:(BOOL)animated{  

  [super viewWillDisappear:YES];   

 [timer invalidate];

}

你可能感兴趣的:(IOS中使用ARC和定时器导致viewController无法正常释放)