转换为ARC无法识别-fno-objc-arc标志

时间:2012-07-24 11:34:41

标签: ios ios5

我终于尝试将我的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的类的唯一解决方案?感谢

1 个答案:

答案 0 :(得分: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对象”

another stackoverflow question之后,我将该行更改为

  

__ unsafe_unretained NSError * error;

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