由于Swift中没有预处理器,是什么取代了C宏?

ABe*_*its 3 cocoa swift

有没有办法在Swift中执行#define,#ifdef和其他强大的宏?

Con*_*nor 5

Swift没有预处理器,也不能使用C宏.但是有一些替代方案.对于常量,您只需使用let语句即可.例如:

let defaultHeight = 100
Run Code Online (Sandbox Code Playgroud)

还有一些对构建配置的支持.他们有这种格式.

#if build configuration && !build configuration
    statements
#elseif build configuration
    statements
#else
    statements
#endif
Run Code Online (Sandbox Code Playgroud)

您可以将"构建配置"替换为函数,os()arch()返回true或false.os()可以将OSX或iOS作为参数,同时arch()可以将x86_64,arm,arm64和i386作为参数.

您可以在此处查看有关Swift如何替换C宏的更多信息