转换为ARC后EXC_BAD_ACCESS,但可以正常配置,没有僵尸

时间:2012-09-06 21:42:31

标签: iphone ios

对我而言,我无法在设备或模拟器上运行我的项目,但是当我选择配置文件而不是运行选项时,应用程序运行完美,没有任何僵尸家伙。

将项目转换为ARC后会发生这种情况。我只是修改代码,因为Xcode告诉我todo,由于这个项目的大小,我无法浏览每一行代码。

PS。我是这个应用程序的第三手资料,所以我几乎不可能理解10k行代码。

2 个答案:

答案 0 :(得分:2)

您是否尝试过在Xcode中启用Zombies而不进行分析?这会将对象设置为永不dealloc,这样当您发送一个保留计数为零的对象时,它将知道该对象是什么并告诉您。只需确保再次打开它,这样对象就会正常释放。

在这里看看如何做到这一点: How to enable NSZombie in Xcode?

答案 1 :(得分:0)

以下内容可以帮助您,但在迁移之前执行最好是IMO;如果存在问题,ARC将在抽象其他人时解决一些问题:

1)创建更多自动释放池一种可以帮助您缩小范围的方法是显式创建自动释放池 - 这可以帮助您本地化一些应用程序的内存相关问题。显式添加自动释放池有其他好处,因此这不仅可以用于寻找bug。

2)使用GuardMalloc ,还有其他与内存相关的工具 - 您的应用也可以在启用GuardMalloc的情况下正常运行。切换到ARC可能会改变破坏点 - 你可能会抓住一个悬垂的指针。

3)删除所有泄漏最后,这可能会向后发声 - 删除所有泄漏。你希望内存操作和生命周期定义良好。如果您偶尔发生泄漏,您的问题可能很难被发现。通常,减少泄漏可以帮助您通过使问题更容易重现来隔离问题。