将非ARC文件添加到ARC iPhone应用程序的问题?

时间:2012-06-26 11:37:18

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

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

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

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

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

答案 1 :(得分:0)

只需做以下事情:

  1. 重置模拟器。

    2。清除你的Build

  2. 在非弧文件内容中删除release,retain,autoreleasepool和auto release。

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