相关疑难解决方法(0)

用Swift语言替换#ifdef

在C/C++/Objective-C中,您可以使用编译器预处理器定义宏.此外,您可以使用编译器预处理器包含/排除代码的某些部分.

#ifdef DEBUG
    // Debug-only code
#endif
Run Code Online (Sandbox Code Playgroud)

Swift中有类似的解决方案吗?

xcode preprocessor preprocessor-directive swift

697
推荐指数
15
解决办法
23万
查看次数

在发布应用程序之前是否需要禁用NSLog?

在为iPhone发布应用程序时,如果我禁用NSLog();它会表现更好吗?

iphone nslog ios

116
推荐指数
8
解决办法
5万
查看次数

删除发行版iOS Swift的println()

println()如果我不在Debug构建中,我想全局忽略我的Swift代码中的所有调用.我找不到任何有力的分步说明,并希望得到指导.有没有办法在全球范围内做到这一点,还是我需要println()#IF DEBUG/#ENDIF语句包围每一个?

xcode ios swift xcode6

77
推荐指数
10
解决办法
4万
查看次数

swift debugPrint vs print

有没有办法让应用程序崩溃并在运行时刻录print()print()在Swift运行时中使用'd'实现覆盖preconditionFailure("STOP using print()").

基本上它是巴甫洛夫团队正在训练的狗训练的一部分:我希望人们使用debugPrint而不是打印来仅在调试版本中污染控制台.

UPD20180525:亚光是正确的:打印输出不会转到真实设备的实时控制台,它不知何故最终只能在lldb控制台上.

NSLog输出思想是否会转到设备的控制台,因此需要在运行时或非编译构建时编译的是NSLog

这是实际需要的:

#if DEBUG
#else
public func NSLog(_ format: String, _ args: CVarArg...)
{

}
#endif
Run Code Online (Sandbox Code Playgroud)

(因为没有真正需要摆脱在发布版本中无害的打印)

swift

1
推荐指数
1
解决办法
749
查看次数