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