2012-07-24 45 views
2

我终于尝试将我的ios项目转换为ARC。有几个文件我不想转换为ARC,因此我添加了“-fno-objc-arc”标志来构建阶段 - >编译源文件到相应的* .m文件。但是,当我尝试编辑 - >重构 - >转换为ARC时,我得到了“无法转换为Objective-C ARC:Xcode发现3个问题阻止了继续进行转换。修复所有ARC准备就绪问题并尝试再次。”错误转换为ARC无法识别-fno-objc-arc标志

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

谢谢!

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

+0

听起来像是在你身边一个设计错误。你能发布其中一个错误和相应的标题条目吗? – Till 2012-07-24 11:38:48

+0

在转换成ARC之前,你似乎通过添加他-fno ...标志来混合隐喻。如果你有要保持“正常”的文件,为什么不把它们从你的目标中删除,重构,然后将它们添加回来并添加标志? – 2012-07-24 11:39:33

+0

嗨我做了一个编辑。突出显示ARC限制错误的代码行只是“#import”JSONKit.h“”。因为我向JSONKit.m添加了-fno-objc-arc,所以JSONKit.m上的同一行没有此错误。那么我必须将标志添加到我创建的导入JSONKit.h的类中吗?我将来可能会有更多的类依赖于JSONKit;这不会是理想的...... thx – minovsky 2012-07-24 11:41:24

回答

1

临时getaround(除非有人能提出更好)

我已经有在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 *错误;

并将其编译...似乎工作确定到目前为止