10

我已经尝试过在这篇文章中找到的解决方案来禁用 AFNetworking 文件中的 ARC,但无济于事:

在此处输入图像描述

有什么想法我失败了吗?显然,答案越简单越好。我还读过创建静态库可能会有所帮助,但这似乎很复杂。

编辑

我尝试删除派生数据清理和构建重新启动 Xcode。没有优惠:(。

此外,我的工作区中没有其他项目。

4

7 回答 7

16

奇怪的事情。我尝试将-fno-objc-arc标志添加到一些 Facebook 文件中,最终构建了该项目。我想这里的教训是,当 Xcode 生成这些类型的错误时,问题的根源可能在另一个文件中。如果 Xcode 抱怨您已经标记的文件,则尤其如此!

在此处输入图像描述

希望这会对某人有所帮助:)。

于 2012-05-30T15:56:32.840 回答
5

只是一点额外的提示:

如果您的项目中有多个目标,请检查是否-fno-objc-arc向所有目标添加了编译器标志。

于 2013-08-11T19:52:30.203 回答
3

"Convert to Objective-C ARC" 是一个代码重写工具,另一方面 -fno-objc-arc 是一个编译时间标志。它与重构的目的无关。

在单击“检查”之前,展开目标并取消选择要保持 ARC-free 的文件。

于 2013-02-22T17:15:36.587 回答
2

其实问题很简单。-fno-objc-arc确保在编译器标志对话框中输入的标志后没有回车。

于 2012-07-13T17:52:35.660 回答
1

我设法通过一个不符合 ARC的.m文件进入这种状态。编译器抱怨包含的文件,它很可能被标记为. 我不得不标记正在做包括的事情。#imported.m-fno-objc-arc.m

我通过在失败时扩展构建输出并查看显示无法编译的文件的原始日志来发现这一点(与警告中的文件不同)。

我还需要删除派生的数据文件。

于 2012-12-14T01:43:54.167 回答
0

有同样的问题,但无法找到有问题的文件(如在 Brotto 的解决方案中)。因此,只需将非弧投诉代码片段包装在以下 #if 语句块中:

#if !(__has_feature(objc_arc))

//...non-arc code

#endif
于 2012-10-23T23:54:04.780 回答
0

通过取消选中 Refactor -> Convert to Objective-C ARC 模式中的非 ARC 文件,我能够解决我的问题。即使由于“fno-objc-arc”标志,文件已经被删除。一旦我取消选中这些文件,Xcode 开始吐出更好的错误,使我能够找到需要修复的文件。进行这些更改后,我很高兴。

于 2012-11-12T17:49:18.747 回答