NSTimer引发的内存泄露

接手的项目中短信验证码界面使用了NSTimer做倒计时操作,在登录成功后页面已关闭但未对NSTimer做处理,导致dealloc方法未执行,dealloc中移除通知的[[NSNotificationCenter defaultCenter]removeObserver:self];也未执行,导致了后续的bug产生!

  • 解决NSTimer的内存泄露问题,在倒计时结束逻辑和viewWillDisappear中调用 [self.timer invalidate]; 解决timer持有self导致的内存泄露

  • 对于移除通知的逻辑一定要验证程序肯定执行了移除的逻辑,对于通知的使用要尽量谨慎

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • NSNotification 的便利性和内存泄露风险 实现在两个互不相关的模块之间通信,NSNotificatio...
    ZHONG子航阅读 1,376评论 2 17
  • 之前要做一个发送短信验证码的倒计时功能,打算用NSTimer来实现,做的过程中发现坑还是有不少的。 基本使用 NS...
    WeiHing阅读 4,400评论 1 8
  • 一.代码质量总结 在几周的稳定性工作中, 我对现有内涵iOS代码进行了一次初步的review过程,主要是针对一些非...
    沐森iOS阅读 3,683评论 7 27
  • 本文行文催促,论证也不严谨,特删除,仅保留少数观点。 现实中绝大多数人都觉得自己随份子吃亏了。 人情往来的过程中还...
    鄙人姓贺阅读 420评论 0 0
  • 有人扼住他的咽喉 和他搏斗 我是女人 没练过武功 我只对着他笑 这帅哥谁呀 命运呀
    雪莉诗话阅读 280评论 14 13