重新定位导航控制器的根视图控制器后的内存泄漏



我正在使用此代码重新加载导航控制器的根视图控制器。

if let newVC  = self?.storyboard?.instantiateViewController(withIdentifier: "MyViewController"), let nc = self?.navigationController {
                nc.setViewControllers([newVC], animated: true)
            }

,但我发现此代码yeilds内存泄漏:未使用此代码发布内存。

如何捕捉和修复?有任何建议吗?

设置新视图控制器时,堆栈的整个内容将被新的ViewControllers取代。所有的ViewControllers都会流行。

您可以通过编写被替换的所有ViewController的Deinit方法来检查此问题。替换ViewControllers时,所有DEINIT方法都会被调用。它会自动释放内存,您不必明确处理内存或发布内存。

检查此链接:https://developer.apple.com/reference/uikit/uinavigationcontroller/1621861-setviewControllers?

最新更新