dealloc
未在控制器B中调用,因为它是从导航堆栈中弹出的。
即这(非常正常)设置:
导航控制器将控制器A作为根,按钮轻按顶部的B.然后控制器B中的后退按钮展开控制器A.这都是通过IB中的故事板界面完成的(我确实使用了一个自定义的segue类,在推送时不使用动画)。通常(当仅使用xib和非弧时),这最终会在控制器B弹出时调用dealloc。但就我而言,它没有。这是故事板的正常行为吗?或者如果没有,我在某处犯了一些错误,有些东西挂在控制器B上。仅仅我使用ARC并且没有在代码中的任何地方明确地创建控制器B.
这是令人震惊的,因为我注意到控制器B的构造函数在每次从A推送时被调用(即使从B返回到A)。这意味着B控制器会泄漏。