【问题标题】:I have 4 ViewControllers in a TabBarController. Only 3 are dealloc'd when the TabBarController is dealloc'd. Why?我在 TabBarController 中有 4 个 ViewController。当 TabBarController 被解除分配时,只有 3 个被解除分配。为什么?
【发布时间】:2016-03-11 19:50:14
【问题描述】:

我有一个自定义的 UITabBarController。我正在记录与它一起使用的 4 个 ViewController,我得到了我期望的结果。

但是,当我点击 NavigationController 中的后退按钮(删除自定义 UITabBarController)时,4 个 VC 中只有 3 个调用了他们的 dealloc 方法。为什么会这样?

2016-03-11 14:46:06.966 [24357:9827962] -[CustomTabBarController dealloc]
2016-03-11 14:46:06.967 [24357:9827962] -[FourthViewController dealloc]
2016-03-11 14:46:06.967 [24357:9827962] -[SecondViewController dealloc]
2016-03-11 14:46:06.968 [24357:9827962] -[FirstViewController dealloc]

ThirdViewController 永远不会被释放。我在那里有一个日志语句,但无法弄清楚为什么这可能不像其他的那样被释放。有什么想法吗?

【问题讨论】:

  • 你可能在某处有一个保留周期
  • 正如 dan 所说,确保 ThirdViewController 不被任何其他对象持有。它将帮助我判断我是否可以看到您的代码。
  • @dan 是的,有。我在堆上有一个块指向自己,当 TabBarController 被释放时,ThirdViewController 仍然被这个块指向。

标签: ios objective-c uitabbarcontroller dealloc


【解决方案1】:

您能否发布您的代码...根据其他建议,它们似乎确实可能是某处不让您的视图控制器释放的强大参考。

【讨论】:

    猜你喜欢
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 2017-02-09
    相关资源
    最近更新 更多