我终于尝试将我的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的类的唯一解决方案?感谢
答案 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;
它编译......到目前为止似乎工作正常