我有一个类(在github上使用NDTrie),它使用c结构作为其内部结构,通过将fno-objc-arc添加到源文件,用户可以更轻松地在项目中使用它进行自动引用计数而不是要求用户在该源文件的构建阶段设置它,有没有办法做到这一点。
答案 0 :(得分:0)
每个文件的每个文件编译器标志被添加到文件上(文件意味着编译成某种形式的机器代码通常会试图避免元数据)。如果您想指定该标志并让它更新任何Xcode项目中的必填字段,您可以使用CocoaPods为您的依赖性编写一个pod文件。让底层工具处理剩下的工作。
答案 1 :(得分:0)
不,在这种情况下,无法根据功能分离部分的翻译并更改其翻译标记。
你应该从另一个角度来接近它。 ARC功能根据当前转换的编译器标志将所有预处理输入视为是否启用ARC。
最明显的解决方法:
0)影响减少:尽可能隐藏实施
1)翻译特定条件:使用__has_feature(objc_arc)
确定您是否正在处理启用ARC的翻译 - 如果您使用的是clang,则表达式__has_feature(objc_arc)
在ARC时扩展为1已启用。然后,您可以有条件地使程序的某些部分可见或以不同方式对其进行注释,具体取决于是否启用了ARC。
2)检测并失败:在其他一些情况下,您可以选择:
// >> detect clang or GCC if needed
#if __has_feature(objc_arc)
#error This file cannot be compiled with ARC enabled (+HYPERLINK so you don't get a flooded inbox)
#endif
// << detect clang or GCC if needed