Ios 在非圆弧项目中使用圆弧静态库

Ios 在非圆弧项目中使用圆弧静态库,ios,compiler-construction,automatic-ref-counting,workspace,Ios,Compiler Construction,Automatic Ref Counting,Workspace,我正在努力解决这个问题。我知道如何让ARC项目使用不使用ARC的文件或静态库。例如,使用编译器标志-fno objc arc 但是,如果我有一个不使用ARC的项目,并且希望包含一个使用ARC编译的静态库,该怎么办?每次我想构建项目时,它都会告诉我,它无法识别“强”、“不安全”、“未恢复”之类的东西。它应该可以正常工作-你确定你使用的是最新的Apple编译器,而不是GCC编译器吗?来补充shw的答案。在arc文件的构建阶段下,将-fobjc arc添加到编译器标志,以使它们能够为非arc项目正确编

我正在努力解决这个问题。我知道如何让ARC项目使用不使用ARC的文件或静态库。例如,使用编译器标志-fno objc arc


但是,如果我有一个不使用ARC的项目,并且希望包含一个使用ARC编译的静态库,该怎么办?每次我想构建项目时,它都会告诉我,它无法识别“强”、“不安全”、“未恢复”之类的东西。

它应该可以正常工作-你确定你使用的是最新的Apple编译器,而不是GCC编译器吗?

来补充shw的答案。在arc文件的构建阶段下,将-fobjc arc添加到编译器标志,以使它们能够为非arc项目正确编译


更多信息

只是好奇,为什么不能为项目启用ARC并将编译器标志添加到所有文件中?您需要禁用ARC有什么具体原因吗?该项目是在不久前构建的,并且还使用了许多其他第三方非ARC框架。因此,检查所有文件并设置编译器标志将是一个繁琐的过程。我希望有更好/更干净的解决方案。因此,我不需要在300多个源文件上填写编译器标志…:)您知道ARC migrator基本上允许您“选择所有”文件来添加标志吗?至少在Xcode 4.2中,不需要手动执行所有文件。在“转换为目标-C弧…”菜单项中的“预检查”按钮按下之后或之前?或者ARC migrator位于其他地方?应该在之前,但我记不清了,因为我现在没有带Mac电脑。如果我想这样做,我需要从我的项目中删除所有保留/释放调用,并基本上开始ARC整个过程。我不想这样做,因为它有一些旧的遗留代码和一些结构在里面。不,你没有-ARC是一个额外的编译器功能,如果你不想,你不必使用它。使用最新的苹果LLVM并不意味着你必须使用ARC——这是你的选择(它甚至让你在制作新项目时可以选择是否使用ARC)。使用它并不意味着你必须将你的旧代码转换成ARC。区别在于它能理解所有的新关键字等。杰普,你说得对。我以为我必须开始打弧线球,但他只是在抱怨一些缺投和一些其他错误!谢谢