0

我将非应用程序中的添加.h和文件添加到iphone 应用程序。我在这些文件的构建阶段将 -fno-objc-arc 设置为编译器标志。但是当我在添加这些文件后尝试运行这个应用程序时,我遇到了一个问题。应用程序没有给出任何错误只是显示失败一次并停止构建过程。.mARCARC

我很困惑,并试图了解这是什么问题。我删除这些非ARC文件后,它运行正常。

4

2 回答 2

1

首先,您添加 .h 文件,但没有在其上设置任何编译标志 - 您对此的评论有点混乱 - 实际上您的问题和评论令人困惑。所以让我们尝试解决这个问题:

  • 您将 .m 和 .h 添加到项目中 - 您可以在左窗格中看到它们
  • .m 文件被添加到所需目标的构建阶段,编译标志为 -fno-objc-arc

现在它变得棘手,因为你的问题是自相矛盾的:

1)您尝试构建并且构建失败。然后编辑您的帖子并提供错误消息。

2)构建成功,您运行了项目,但它以某种方式失败。问题是你没有告诉我们它是如何失败的。

因此,除了澄清您的问题之外,请注意,如果您将非 ARC 文件添加到项目中,该文件必须符合某些约定,您可以在 ARC 文档中阅读这些约定(两篇非常短的文章,一篇来自 Apple ,来自 llvm 的一个)。例如,如果您在该文件中有一个以“init”或“create”开头的方法,那么它返回的任何对象都必须保留而不是自动释放。

我个人已经在 ARC 项目中使用了非 ARC 文件一年了,没有任何问题。

于 2012-06-26T12:06:52.283 回答
0

只需执行以下操作:

  1. 重置您的模拟器。

    2. 清除你的构建

在您的非 arc 文件内容中删除 release、retain、autoreleasepool 和 auto release。

构建并运行后。希望它会奏效。

于 2012-06-26T11:46:46.107 回答