Answers:
在Swift中,按照Apple docs的规定,您仍然可以使用“#if /#else /#endif”预处理器宏(尽管有更多限制)。这是一个例子:
#if DEBUG
let a = 2
#else
let a = 3
#endif
现在,您必须在其他位置设置“ DEBUG”符号。在“ Swift编译器-自定义标志”部分的“其他Swift标志”行中进行设置。您将DEBUG符号与-D DEBUG
条目。
(构建设置-> Swift编译器-自定义标志)
与往常一样,在“调试”或“发行”中可以设置其他值。
我用真实代码进行了测试;它似乎在操场上未被认可。
$(inherited)
在目标设置中使用它来继承项目设置。
$(inherited)
使我的评论无关紧要,谢谢!
我们遇到了一个问题,就是不想设置快速的编译器标志,因为我们不想设置它们并保持它们针对不同目标的最新状态。此外,在我们的混合代码库中,我们不想记住为每种语言始终设置适当的标志。
对于我们来说,我们在ObjC中声明了一个文件
PreProcessorMacros.h
extern BOOL const DEBUG_BUILD;
在他们之中
PreProcessorMacros.m
#ifdef DEBUG
BOOL const DEBUG_BUILD = YES;
#else
BOOL const DEBUG_BUILD = NO;
#endif
然后,在您的Objective-C桥接标题中
#import "PreProcessorMacros.h"
现在,在您的Swift代码库中使用它
if DEBUG_BUILD {
println("debug")
} else {
println("release")
}
这绝对是一种解决方法,但是它解决了我们的问题,所以我在这里发布了它,希望对您有所帮助。这并不意味着建议现有答案无效。
更快速地解决Logans方法。坐落-D DEBUG
在Other Swift Flags
的Swift Compiler - Custom Flags
在你的目标的构建设置部分。
然后在全局范围内声明以下方法:
#if DEBUG
let isDebugMode = true
#else
let isDebugMode = false
#endif
现在将其用作
if isDebugMode {
// Do debug stuff
}
对我来说,将“ 活动编译条件 ” 的调试项设置为“调试”。
然后在#IF中使用DEBGU键工作DEBUG在调试模式下工作,而#ELSE在发布模式下工作:
使用简单如下:
#if DEBUG
print("You'r running in DEBUG mode!")
#else
print("You'r running in RELEASE mode!")
#endif