fobjc-arc标志导致消息发送到解除分配的实例崩溃

时间:2015-04-09 12:41:22

标签: ios objective-c automatic-ref-counting

我有一个MRC(手动参考计数/非ARC)项目,我已经通过添加" -fobjc-arc" 编译器标志将一个类文件修改为ARC兼容在这些更改之后,每当我运行应用程序时,我都会收到运行时错误,例如"消息被发送到解除分配的实例崩溃"

如果我删除-fobjc-arc标志,那么我的应用程序按预期工作,但是使用此标志会抛出此运行时异常。 我做了很多谷歌搜索,但没有运气。 任何人都面临这个问题,任何帮助都会提前得到赞赏。

2 个答案:

答案 0 :(得分:0)

我建议您启用Zombie对象:Enable and Debug Zombie objects in iOS using Xcode 5.1.1

这将帮助您检测哪个被处理的对象正在接收呼叫。您还可以启用"所有例外"断点http://blog.manbolo.com/2012/01/23/xcode-tips-1-break-on-exceptions并且可能会在错误崩溃之前中断。

答案 1 :(得分:0)

这意味着您正在向已经被处理的实例发送消息,假设由ARC承担。

要查看涉及哪个消息和对象,可以添加异常断点。使用带分配工具的工具也可以帮助调试。

使用@Mephes建议的Zombies也是一个非常好的主意。