2

我终于尝试将我的 ios 项目转换为 ARC。有几个文件我不想转换为 ARC,所以我在构建阶段添加了“-fno-objc-arc”标志 -> 将源代码编译到相应的 *.m 文件中。

但是,当我尝试编辑 -> 重构 -> 转换为 ARC 时,我收到“无法转换为 Objective-C ARC:Xcode 发现 3 个问题阻止转换继续进行。修复所有 ARC 准备问题并重试。” 错误

错误都在 *.h 文件上,我已为其添加了 -fno-objc-arc 到相应的 *.m 文件中...我是否也必须将标志添加到 *.h 文件中?如果是这样,我在哪里可以找到它?

谢谢!

编辑所以我更清楚地阅读了错误。我遇到问题的文件是 JSONKit.h。这些错误不是在 JSONKit.m 中生成的,而是我编写的其他导入 JSONKit.h 的类所以将 -fno-objc-arc 标志添加到我自己的导入 JSONKit.h 的类中的唯一解决方案是什么?谢谢

4

1 回答 1

1

临时解决方法(除非有人可以提出更好的建议)

我在 JSONKit.h 中遇到以下错误

typedef struct {
   JKParseOptionFlags  parseOptionFlags;
   JKConstBuffer       stringBuffer;
   size_t              atIndex, lineNumber, lineStartIndex;
   size_t              prev_atIndex, prev_lineNumber, prev_lineStartIndex;
   int                 errorIsPrev;
   JKParseToken        token;
   JKObjectStack       objectStack;
   JKTokenCache        cache;
   JKObjCImpCache      objCImpCache;
   NSError            *error;
 } JKParseState;

错误出现在 NSError 行 - “ARC 禁止在结构或联合中使用 Objective-C 对象”

另一个stackoverflow问题之后,我将行更改为

__unsafe_unretained NSError *error;

它编译......到目前为止似乎工作正常

于 2012-07-24T14:43:28.277 回答