【问题标题】:NSXMLParser gives EXC_BAD_ACCESS only with ARC enabledNSXMLParser 仅在启用 ARC 的情况下提供 EXC_BAD_ACCESS
【发布时间】:2012-07-03 04:59:56
【问题描述】:

嗯,这个主题几乎说明了一切。我有解压缩和解析 epub 的代码。如果我不使用 ARC,它可以正常工作,但如果我在启用 ARC 的情况下使用相同的代码(当然没有保留和释放),我会得到 EXC_BAD_ACCESS。

NSXML解析器解析方法期间的代码炸弹。

我运行的代码是:http://ideveloperworld.blogspot.in/2011/02/epub-reader.html

您可能在想,为什么不直接不使用 ARC,但我正在将 epub 阅读器集成到一个已经使用 ARC 的更大项目中。

感谢您的帮助。

【问题讨论】:

  • 您可以在 ARC 关闭的情况下编译单个翻译单元。对项目的这一部分这样做可能会更好。

标签: iphone ios automatic-ref-counting nsxmlparser epub


【解决方案1】:

如果你想在没有 arc 的情况下编译某些文件,这就是你需要做的。

转到您的项目(单击项目导航器中的蓝色文件夹),然后转到构建阶段。点击 Compile Sources,它应该是您项目中的文件列表。

对于您希望在没有 ARC 的情况下编译的任何文件,将该文件的编译器标志设置为:“-fno-objc-arc”。它应该看起来像这样:

【讨论】:

  • 好的。我现在就试试这个。我正在考虑这个问题,似乎如果 ARC 导致 EXC_BAD_ACCESS 它正在解除分配否则不会被解除的对象。这让我觉得代码正常泄漏了一个对象。
  • 好吧,我照你说的做了。有用。由于我上面的评论,它不适用于 ARC 仍然让我感到困扰,但这将满足我的需求。非常感谢。
  • 尝试将有问题的对象设为属性。您可能在循环中的对象或变量的可见性方面做错了什么,但是如果您将其设为声明的属性,则范围确实没有任何问题
  • 不错不错。我的评论可能会帮助您避免此修复。我承认这是一种创可贴解决方案,一开始就避免使用 ARC
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-27
  • 1970-01-01
  • 2011-12-03
相关资源
最近更新 更多