NSZombie是否有可能没有指出ARC的EXC_BAD_ACCESS?

时间:2012-06-10 16:58:16

标签: ios background automatic-ref-counting exc-bad-access nszombieenabled

我目前正在和一些人合作开展一个ios项目,其中一个人决定在应用程序的一部分中使用ARC。

不幸的是,我们目前正在从背景回来时遇到一些崩溃。

以下是崩溃应用程序的步骤,我们使用ios-simulator执行它们:

  1. 启动应用程序
  2. 使用ViewController A(用ARC编码)
  3. 登上ViewController B(不用ARC编码 - 老实说我没有 知道它是否相关 - )
  4. 将申请表放在后台。
  5. 模拟内存警告(通过模拟器)
  6. 再次启动应用程序,我们将在ViewController B
  7. 返回Viewcontroller A
  8. 应用程序崩溃指向主要功能 EXC_BAD_ACCESS
  9. 我们确实尝试将NSZombieEnabled用于YES,但是当我们这样做时,应用程序不会崩溃并保持完美运行,所以我们想知道NSZombieEnabled是否可能与ARC不能很好地工作?

    如果有人能给我一个关于ARC和NSZombieEnabled的快速而清晰的见解,我会想知道它是如何工作的,但显然我一定会遗漏一些东西。

    非常感谢您的帮助和时间。

1 个答案:

答案 0 :(得分:0)

比使用NSZombieEnabled更好,您应该对项目进行概要分析,并使用Zombie仪器。当你做同样的事情时,它应该停下来并说“zombie messaged”,你可以点击一个箭头来查看僵尸类,以及它被分配/解除分配的位置。

我不认为崩溃与ARC有关,而是在viewDidUnload中你要释放一些东西,然后不设置对nil的引用 - 当你回来时它试图使用无效的引用。

如果一切都使用ARC,你可能会更好,因为它确实有助于解决这样的问题(非ARC代码中的错误非常可能)。