当视图控制器执行popViewControllerAnimated或dismissViewControllerAnimated方法后,dealloc函数始终未被调用时,可能是由以下几点当中的某一点或几点引起的:
(1)初始化某个UIView时,使用strong修饰词修饰该view的某个属性,导致强持有当前视图控制器,从而造成循环引用,引起内存泄漏;
(2)ViewController中强引用代理(delegate),应该使用weak修饰词来修饰;
(3)ViewController中使用了block,且存在循环引用。使用__weak修饰;
(4)ViewController中创建了定时器NSTimer,导致引用计数+1.解决方法是在viewWillDisappear中执行[_timer invalidate]和_timer=nil.
5 . WKWebViewController 需要在viewWillDisappear: 方法中移除 js回调 (由于新增了回调 没有移除 导致不走dealloc 每次跳转到web 内存都会增加 以此记录)
[self.contentWebView.configuration.userContentController removeScriptMessageHandlerForName:@"***"];