美文网首页
如何释放Cell中的NSTimer

如何释放Cell中的NSTimer

作者: 卡布奇诺不加糖 | 来源:发表于2017-10-17 14:32 被阅读0次
Cell中使用NSTimer

问题

Cell中使用了NSTimer做倒计时功能,在Cell的dealloc方法中销毁定时器[self.timer invalidate];然而当退出当前视图控制器时Cell并没有释放。

原因

Cell与timer相互强引用,造成循环引用,无法释放,dealloc无法执行。

解决方案

Cell即将从父视图移除时,销毁定时器。

/**

开启定时器

*/

- (void)startTimer {

//1.校验,只实例化一次

if (self.timer) return;

//2.实例化定时器

NSTimer *timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(reloadUI) userInfo:nil repeats:YES];

//3.添加到运行循环

[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

self.timer = timer;

}

“销毁定时器”

销毁定时器,释放Cell

源码地址

https://github.com/nuoatuo/FreeTimerOfCell.git

相关文章

网友评论

      本文标题:如何释放Cell中的NSTimer

      本文链接:https://www.haomeiwen.com/subject/ihjnyxtx.html