0

我有一个UIViewController我正在显示为模态弹出框。使用完该视图后,我将弹出到我的特定位置UINavigationBar

[[appDelegate.homeViewController navigationController] popToViewController:[[appDelegate.homeViewController navigationController ].viewControllers objectAtIndex:2] animated:YES];

UIViewController下面的崩溃中提到了呈现模式的视图控制器:

*** -[ClientDetailsViewController respondsToSelector:]: message sent to deallocated instance 0x8c17650

我怎样才能找到它,看看是什么导致了我的崩溃?

4

1 回答 1

3

我怎样才能找到它,看看是什么导致了我的崩溃?

只需激活僵尸

  • 在 Xcode4 中,按住该alt键的同时从菜单中选择“ Product ”>“ Run ”以显示 Schemes 对话框(或选择 Edit Schemes 以显示它)。
  • 然后在“诊断”选项卡中,选中“启用僵尸对象”复选框

诊断对话框 现在,当一个对象在被释放后被使用时,您将能够看到所关注的对象以及它何时被过度释放。


此外,不要犹豫使用“产品”->“分析”菜单中的静态分析器,这样 Xcode 会告诉您他可以在您的代码中找到的每个内存管理错误(和其他错误)。

静态分析器示例

您应该经常运行这个“分析”工具并修复它显示的所有警告,因为它是一个非常好的工具,可以告诉您代码中可能出现的问题并且是非常好的建议。

当你运行这个工具时没有任何警告并不能保证你的代码不会崩溃,但是当你运行这个工具时有警告可以保证你的代码中有一些需要修复的东西。

于 2012-09-17T17:55:37.533 回答