【问题标题】:fobjc-arc flag causing message sent to deallocated instance crashfobjc-arc 标志导致发送到已释放实例崩溃的消息
【发布时间】:2015-04-09 12:41:21
【问题描述】:

我有一个 MRC(手动引用计数/非 ARC)项目,我通过在这些更改后添加 "-fobjc-arc" 编译器标志将一个类文件修改为 ARC 兼容我'每当我运行像 "message sent to deallocated instance crash"

这样的应用程序时,我都会遇到运行时错误

如果我删除 -fobjc-arc 标志,那么我的应用程序将按预期工作,但使用此标志它会引发此运行时异常。 我做了很多谷歌搜索,但没有运气。 任何人都遇到过这个问题,任何帮助都提前表示感谢。

【问题讨论】:

  • message sent to deallocated instance crash 表示对象正在被解除分配,你永远不会在谷歌上找到解决方案,你必须深入研究你的代码并找出正在解除分配的对象以及何时/何地。
  • 发布您的控制台日志和导致此崩溃的源代码部分
  • 嗨@vichevstefan 我已经尝试使用异常断点和启用僵尸进行调试,但仍然没有运气:(,每次我收到“[XXXClassName tableView:heightForHeaderInSection:]: message sent to deallocated instance”异常,即使我注释掉我的 tableview 代表我得到这个异常我在 Xcode 6.1 中调试
  • 目前还很难猜到你的原因,但要理解,请参考我的问题(我最近经历过,好像和你的问题有关)stackoverflow.com/questions/29499833/…
  • 嗨@vichevstefan,感谢您宝贵的时间和帮助,我会在调试中敲响一些时间并尝试解决它..

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


【解决方案1】:

这意味着您正在向已解除分配的实例发送消息,假设为 ARC。

要查看涉及哪些消息和对象,可以添加异常断点。使用 Instruments with Allocations 工具也可能有助于调试。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    • 2023-03-14
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多