2

我有一个类(在github上的NDTrie),它使用c struct作为其内部结构,它可以使用户更容易在自己的项目中使用自动引用计数通过将fno-objc-arc添加到源文件而不是要求用户在源文件的构建阶段中设置它,是否有办法做到这一点。将no-objc-arc添加到实现或接口文件

+1

可能。现在问一个问题。 – 2013-02-23 06:42:10

+0

另外,它是'fno-objc-arc'。 ** F **为国旗。 – CodaFi 2013-02-23 06:51:02

+0

@CodaFi'f'功能。同样,'-marc arm'等。这里,'m'代表机器。在clang文档中查看它;-) – 2013-02-23 06:55:31

回答

0

每个文件的编译器标记都是以每个项目为基础(文件意图被编译成某种形式的机器代码,通常试图避免元数据)。如果您想指定标志并让其更新任何Xcode项目中的必填字段,则可以使用CocoaPods为您的依赖编写pod文件。让底层工具处理剩下的工作。

0

不,不可能根据特征将部分翻译分开,并在此情况下更改其翻译标志。

你应该从另一个角度来看待它。 ARC功能根据当前翻译的编译器标志将所有预处理输入视为具有ARC启用或不启用。

最明显的解决方法:

0)影响减少:隐藏的执行情况,在可能的情况

1)翻译的特定条件:使用__has_feature(objc_arc),以确定是否是或不处理启用ARC-翻译 - 如果您使用的是clang,则在启用ARC时,表达式__has_feature(objc_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