关于NSTimer循环引用的问题

来源:6-8 循环引用相关面试问题&面试总结

滨滨_0

2019-01-17

老师你好,关于NSTimer,您课程里面讲到NSTimer是被轮播图持有的,需要通过课程里边的流程去释放。

还有一种情况:我将定时器和轮播图对象都放在VC中,也就是VC持有这俩个对象,那么这种情况下,当VC退出时,我是不是只要在viewWillDisapear方法中调用timer的invalide方法并将timer置为nil就可以了,这样不会产生内存泄漏吧?

写回答

3回答

慕尼黑5054925

2020-01-07

如果只是轮播图这种场景,你的做法是没问题的。但实际开发场景往往更加复杂,定时器的生命周期通常是需要和控制器绑定的,举个例子,当前控制器有个倒计时功能,你就不能在viewWillDisapear中去invalide定时器了。

0
0

小小蜗牛儿

2019-12-01

你这个思路是可以的,不过出于对NSTimer生命周期的考虑不建议在viewWillDisapear中调用timer的invalide方法。

0
0

于海

2019-01-22

具体可以写个demo试下,调用timer的invalideate方法的含义是停止定时器,同时runloop会释放对timer的引用

0
0

资深大牛带你深度剖析ios高级面试

从BAT/TMD名企真题入手,结合源码及应用,构建完整iOS知识体系

1749 学习 · 600 问题

查看课程