接手的项目中短信验证码界面使用了NSTimer做倒计时操作,在登录成功后页面已关闭但未对NSTimer做处理,导致dealloc方法未执行,dealloc中移除通知的[[NSNotificationCenter defaultCenter]removeObserver:self];
也未执行,导致了后续的bug产生!
解决NSTimer的内存泄露问题,在倒计时结束逻辑和
viewWillDisappear
中调用[self.timer invalidate];
解决timer持有self导致的内存泄露对于移除通知的逻辑一定要验证程序肯定执行了移除的逻辑,对于通知的使用要尽量谨慎