2017-05-09 56 views
1

在myProject.pch文件中定义自己的宏,使用C宏

例如:

#define Enable_Analytics 

,我想附上内

#ifdef Enable_Analytics 
    // Code statements which has to executed only if Enable_Analytics is defined 
#endif 
在多个地方的代码几条语句

这对包含/删除基于宏的代码很有用。 在Objective-C这个工程,但在迅速,我得到错误。如何在swift中使用#ifdef?

+0

你有看看[#ifdef替换在Swift语言](http://stackoverflow.com/questions/24003291/ifdef-replacement-in-the-swift-language)? –

+0

@MartinR,是的,我看过那个。我不想移动它来构建设置,因为我的项目中有很多宏。如果没有其他解决方案,我会考虑一下。 – Kishoretheju

回答

0

即使不是C语言或C语言,也可以调用C预处理器来处理文件类型。 在大多数Unix系统上,它通常以cpp的形式提供。只要运行cpp your-file.swift和C预处理器应该预处理该文件,就像它会。C.

但是我不知道如何使预处理器使用定义在项目文件中。因此,您可能必须在命令行上手动指定它们,如-DMACRO_NAME=somevalue

另外,你也可以#include一个包含每个swift文件中定义的文件,并且预处理器将会插入它们。

+0

@MartinR也不是C. #include指令是C预处理器的一部分。完全独立的独立语言。 #include将由预处理器以与#defines相同的方式进行处理。 – Vality