【问题标题】:Issue By Adding NON ARC Files to ARC iPhone Application?通过将非 ARC 文件添加到 ARC iPhone 应用程序的问题?
【发布时间】:2012-06-27 17:18:27
【问题描述】:

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

我很困惑,并试图了解其中的问题。在我删除这些非ARC 文件后,它运行正常。

【问题讨论】:

    标签: iphone objective-c ios5 xcode4.2 automatic-ref-counting


    【解决方案1】:

    只需执行以下操作:

    1. 重置您的模拟器。

      2 。清除您的构建

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

    构建并运行之后。希望它会起作用。

    【讨论】:

    • 感谢您的回复。我试过你所说的干净构建。但是应用程序不会构建。它说只是失败了。它也不会显示任何错误
    • 检查你的添加文件到项目文件夹,并转到目标文件选择构建阶段,在扩展编译源检查.m文件可用
    【解决方案2】:

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

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

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

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

    2) 构建成功,您运行了项目,但不知何故失败了。问题是你没有告诉我们它是如何失败的。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多