ViewController未从Memory中释放

时间:2018-05-29 11:12:06

标签: ios swift memory-leaks automatic-ref-counting retain-cycle

我有这个视图层次结构

  •   

    RouterDashboardViewController:RootViewController

  •   

    RootViewController:UIViewController

目前,RouterDashboardViewController实例位于导航堆栈中。当我重置NavigationController的rootViewController时,RouerDashboardInstance仍然存在于内存中,因为我可以检查我的deinit{}方法没有被调用.Below是Instruments中的堆栈跟踪但是我无法检测到我的RouterDashboard实例未被解除分配的任何原因。我确信会有保留循环使RouterDashboard实例仍然存活。还有一件事我不理解这些堆栈跟踪,因为ViewDidLoad()方法多次调用。Stack Traces of Instruments

1 个答案:

答案 0 :(得分:0)

某些内容强烈引用RouterDashboardViewController。要检查的一些事情......

  • 您是否将其分配给变量?

    • 您可能需要将其声明为weak var …
  • 它是另一个类的委托吗?

    • 确保委托属性也是weak var s
  • 是否使用引用它的任何闭包self

    • 将捕获列表添加到闭包的参数列表([unowned self][weak self]