请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于NSTimer循环引用的问题

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

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

正在回答 回答被采纳积分+3

插入代码

3回答

慕尼黑5054925 2020-01-07 01:14:24

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

0 回复 有任何疑惑可以回复我~
小小蜗牛儿 2019-12-01 20:21:54

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

0 回复 有任何疑惑可以回复我~
于海 2019-01-22 12:44:54

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

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号