如何释放Cell中的NSTimer

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容