什么对我的 viewController 有很强的参考意义?

What holds strong reference onto my viewController?

我正在使用 removeFromParentViewController 从控制器层次结构中删除 viewController,但是未调用视图控制器的 deinit。我如何检查哪些内容对它有很强的参考意义?

有什么方法可以查看内存中是否存在参考图?

这是我的 swap` 方法的样子:

public class func swap(fromViewController: UIViewController!, toViewController: UIViewController!, containerViewController: UIViewController!) {

    fromViewController.willMoveToParentViewController(nil)
    containerViewController.addChildViewController(toViewController)
    toViewController.view.frame = containerViewController.view.bounds

    containerViewController.transitionFromViewController(fromViewController, toViewController: toViewController, duration: 0.2, options: UIViewAnimationOptions.TransitionCrossDissolve, animations: {}, completion: {finished in
        fromViewController.removeFromParentViewController()
        toViewController.didMoveToParentViewController(containerViewController)
    })
}

transitionFromViewController completion 中,我应该添加/删除目标/源视图吗?

有什么方法可以访问 Swift 中 viewControllerrefCount


我尝试用 Instruments 分析代码。弄清楚什么对视图控制器有很强的参考,但无法弄清楚。有帮助吗?

您可以使用 Instruments 分析代码。在 Xcode、select 产品 > 配置文件中。当 Instruments 加载时,select Allocations 作为模板。

这将允许您跟踪哪些对象正在设置哪些强引用。